当前位置: 首页 > news >正文

.net建网站的优势/脚本外链平台

.net建网站的优势,脚本外链平台,网站建设网站网站建设网站,wordpress免费问答模板文章目录QWidget简介功能作用控件的创建坐标系统控件位置与大小调整位置与尺寸最大、最小尺寸控件内容外边距设置鼠标的形状鼠标跟踪QWidget简介 控件是用户界面的最小元素,是一个矩形局域。没有父控件的控件为顶级控件,会装饰一个标题栏,成…

文章目录

  • QWidget简介
  • 功能作用
    • 控件的创建
    • 坐标系统
    • 控件位置与大小
    • 调整位置与尺寸
  • 最大、最小尺寸
  • 控件内容外边距
  • 设置鼠标的形状
  • 鼠标跟踪

QWidget简介

  1. 控件是用户界面的最小元素,是一个矩形局域。
  2. 没有父控件的控件为顶级控件,会装饰一个标题栏,成为一个窗口。父控件调用show()后,会注意遍历其下的子控件并展示。
  3. 子控件,会被父控件管理、裁剪。
  4. QWidget是所有可视化控件的基类,是一个空白控件,继承自QObject
  5. 所有控件按照Z轴排序

在这里插入图片描述
obj._bases_, 获取直接父类,是一个属性
obj.mro() 获取继承链的父类
obj._subclasses_() 获取子类, 是一个魔法方法

功能作用

控件的创建

from PyQt5.QtWidgets import QLabellabel = QLabel(parent, flags)# parent 父控件
# 标志位  设置窗口的外观

坐标系统

在这里插入图片描述
窗口的左上角或者父控件的左上角为原点

控件位置与大小

obj.x(), 距离父控件或者屏幕左上角的x轴距离,包含边框
obj.y(),距离父控件或者屏幕左上角的y轴距离,包含边框
obj.pos(), x和y的组合,是QPoint(x,y) 的对象

obj.width() 控件的宽度,不含边框
obj.height() 控件的高度,不含边框
obj.size() 宽高的组合,QSize(width, height) 的对象

geometry, 用户区域(纯控件部分)相对于父控件或者屏幕的位置,是QRect(x,y, width, height) 的对象

在这里插入图片描述

在这里插入图片描述

调整位置与尺寸

在这里插入图片描述
控件显示后,再设置位置和尺寸????

# 根据内容,自适应大小
label.adjustSize()
# 设置固定大小, 无法变化
label.setFixedSize(300, 400)

布局案例:

  1. 创建一个窗口,width 500, height 500, 左边框距离300, 上边框距离300
  2. 让用户输入显示的子控件总数量,每一行显示的子控件数,实现九宫格展示所有的子控件
    在这里插入图片描述
    代码:
# __author__ = "laufing"# 导包
# from PyQt5.Qt import *   导入所有的类, 占用内存
from PyQt5.QtWidgets import QApplication   # 应用控件
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QWidget
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QPixmap
import sysif __name__ == '__main__':total_widget = int(input("输入总数:").strip())row_count = int(input("每行展示数:").strip())# 多少行row_ = total_widget/row_count if total_widget % row_count == 0 else total_widget // row_count + 1sub_col_width = 500 / row_countsub_row_height = 500 / row_# 1.创建应用程序app = QApplication(sys.argv)print("接收的命令行参数:", app.arguments())# print("全局的应用程序对象:", qApp)# 2. 控件操作window = QWidget()  # 窗口控件window.setWindowTitle("laufing")  # 窗口标题window.resize(500, 500)  # 调整窗口大小(用户区域)window.move(300, 300)  #  移动窗口位置(包含边框)# 创建控件对象,并放入 窗口控件# i控制行,j 控制列i,j = 0, 0#print("xxx total widget:", total_widget)for k in range(total_widget):print("xxxxx:", k)label = QLabel(window)  # 实例化一个标题控件,放入window窗口控件中label.setText("文本" + "%s, %s, %s"%(i, j, k))if j % 2 == 0:label.setStyleSheet("background-color: cyan; text-align: center;")else:label.setStyleSheet("background-color: pink")label.resize(sub_col_width, sub_row_height)label.move(j*sub_col_width, i*sub_row_height)j += 1if j == row_count:i += 1j = 0# logo 图标icon = QIcon()icon.addPixmap(QPixmap("./imgs/dog.jpg"), QIcon.Normal, QIcon.Off) # 添加Pixmap对象window.setWindowIcon(icon)# 显示window.show()# 3. app.exec_()  进入消息循环,保证程序一直运行exit_code = app.exec_()# 退出程序,并传入退出码sys.exit(exit_code)

最大、最小尺寸

在这里插入图片描述
在这里插入图片描述
设置了最大尺寸后,手动和代码都无法逾越最大尺寸

控件内容外边距

obj.setContentsMargin(左,上,右,下)
obj.getContentsMargin()
obj.contentsRect() 内容区域

实现如下效果:
在这里插入图片描述

设置鼠标的形状

鼠标移动到某控件(区域)时,显示的形状。
obj.setCursor(Qt.xxx)

# 设置鼠标的样式
from PyQt5.QtCore import Qt
window.setCursor(Qt.CursorShape.CrossCursor)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自定义鼠标样式:

from PyQt5.QtGui import QIcon, QPixmap, QCursor
# 自定义鼠标的样式
pix_map = QPixmap("./imgs/dog.jpg")
# 缩放图片
pix_map2 = pix_map.scaled(30, 30)  # 30 * 30
# 实例化QCursor 对象
q_cursor = QCursor(pix_map2) # 后面两个参数 hotX,hotY  鼠标的箭头点
# 控件对象 设置鼠标样式
window.setCursor(q_cursor)# 取消设置
window.unsetCursor()# 控件获取鼠标对象
current_cursor = window.cursor()  # QCursor对象# 设置鼠标的位置
current_cursor.setPos(0, 0)
# 打印鼠标的位置
print(current_cursor.pos())current_cursor.pixmap()  # 获取鼠标图片

鼠标跟踪

在这里插入图片描述
自定义控件类,并重写mouseMoveEvent

class MyWindow(QWidget):# 鼠标移动事件def mouseMoveEvent(self, mouseEvent: QMouseEvent):print("全局位置(屏幕位置)...", mouseEvent.globalPos())print("局部位置(窗口位置)...", mouseEvent.localPos())print("屏幕位置(全局位置)...", mouseEvent.screenPos())print("窗口位置(布局位置)...", mouseEvent.windowPos())print("button...", mouseEvent.button())print("buttons...", mouseEvent.buttons())

这里设置鼠标移动的跟踪,则鼠标移动就触发上述事件

# 控件内部设置鼠标跟踪,触发mouseMoveEvent
window.setMouseTracking(True)
window.setMouseTracking(False)

案例: 创建一个窗口,内部实现一个QLabel控件,当鼠标移入窗口后,让QLabel控件随着鼠标的位置而移动位置

# __author__ = "laufing"from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QLabel
from PyQt5 import QtGuiclass MyWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle("laufing")# 实例化图片对象pixmap = QtGui.QPixmap("./imgs/dog.jpg").scaled(50, 50)# 实例化图标对象icon = QtGui.QIcon()icon.addPixmap(pixmap, QtGui.QIcon.Normal, QtGui.QIcon.Off)self.setWindowIcon(icon)# 设置窗口内容宽高self.resize(500, 500)# 窗口居中desktop_geo = QDesktopWidget().geometry()screen_width, screen_height = desktop_geo.width(), desktop_geo.height()self.move(screen_width/2 - self.width()/2, screen_height/2 - self.height()/2)# 设置鼠标 追踪self.setMouseTracking(True)# 设置QLabel控件对象self.label = QLabel(self)self.label.setText("测试鼠标追踪")self.label.setStyleSheet("background-color: pink;")self.label.resize(100, 50)self.label.move(10, 10)def mouseMoveEvent(self, a0: QtGui.QMouseEvent):print("鼠标移动.....")x,y = a0.localPos().x(), a0.localPos().y()self.label.move(x, y)if __name__ == '__main__':import sysapp = QApplication(sys.argv)window = MyWindow()window.show()exit_code = app.exec_()sys.exit(exit_code)

在这里插入图片描述

http://www.lbrq.cn/news/1259677.html

相关文章:

  • 辽阳网站建设多少钱/seo技术经理
  • 建设一个人才网站需要的人才/百度推广技巧方法
  • 做数独网站能挣钱吗/新闻投稿平台有哪些
  • 做自己的网站/搭建网站平台
  • 做网站需要购买网站空间吗/seo教程下载
  • 广告公司需要办理什么资质/苏州优化收费
  • 建设银行网站证书/百度搜索词排名
  • 承德网站建设方案/整合营销包括哪三方面
  • 杭州网站制作推荐/化妆品营销推广方案
  • 临汾花果街网站建设/百度网盘搜索引擎入口在哪
  • 做虚拟币网站需要什么手续/互联网广告代理可靠吗
  • wordpress学校网站/网站技术解决方案
  • wordpress媒体库远程上传/资阳市网站seo
  • 做网站怎么发展客户/北京seo优化服务
  • 如何做自己的网站系统/网络推广精准营销推广
  • 杭州信贷网站制作/下载爱城市网app官方网站
  • 创办一个网站的流程/防疫管控优化措施
  • 网站相册源码/推广赚钱的软件
  • 那个网站有题做/seo博客写作
  • hexo 转 wordpress/宝鸡seo培训
  • 建设企业网站初始必备的六大功能/搜索引擎seo关键词优化
  • 网站做宣传域名什么好/网络整合营销是什么意思
  • 龙岩市新罗区疫情最新消息/徐州seo顾问
  • 做网站开发的经营范围/怎么搞自己的网站
  • 怎样给网站做后台/南宁百度seo排名优化
  • 专业做网站的团队推荐/长春网络优化最好的公司
  • 龙岗网站建设费用/广告联盟广告点击一次多少钱
  • 建设企业网站哪个好/查询网
  • wordpress 删除所有评论/营销型网站seo
  • DW做注册网站/seo入门书籍推荐
  • 【C语言】自定义类型:联合体与枚举
  • (论文速读)Text-IF:基于语义文本引导的退化感知交互式图像融合方法
  • vue3+vue-flow制作简单可拖拽可增删改流程图
  • 多租户字典管理系统完整设计
  • LCL滤波器及其电容电流前馈有源阻尼设计软件【LCLAD_designer】
  • 07.config 命令实现动态修改配置和慢查询