一、前言
QWidget翻译过来是小部件的意思,QWidgt 类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗 口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的, 并且它们按 Z 轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住 一部分。
二、学习目标
1.QWidgt界面实现
2.QWidgt常用方法
三、知识点
1.【QWidgt窗口实现】
基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类。
- 创建语法:
window = QWidget()
Qwidget()中可填入参数:"(self, parent=None, flags)"
parent :父类,设置窗口父类对象,不设置为None,为顶层窗口,非必填;
flags:窗口标志,非必填。
- 窗口标志类型:
flags | 说明 |
Qt.MSWindowsFixedSizeDialogHint | 窗口无法调整大小 |
Qt.FramelessWindowHint | 窗口无边框 |
Qt.CustomizeWindowHint | 有边框但无标题栏和按钮,不能移动和拖动 |
Qt.WindowTitleHint | 添加标题栏和一个关闭按钮 |
Qt.WindowSystemMenuHint | 添加系统目录和一个关闭按钮 |
Qt.WindowMaximizeButtonHint | 激活最大化和关闭按钮,禁止最小化按钮 |
Qt.WindowMinimizeButtonHint | 激活最小化和关闭按钮,禁止最大化按钮 |
Qt.WindowMinMaxButtonsHint | 激活最小化,最大化和关闭按钮 |
Qt.WindowCloseButtonHint | 添加一个关闭按钮 |
Qt.WindowContextHelpButtonHint | 添加问号和关闭按钮,同对话框 |
Qt.WindowStaysOnTopHint | 窗口始终处于顶层位置 |
Qt.WindowStaysOnBottomHint | 窗口始终处于底层位置 |
- 普通写法
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget
#1.创建app实例
app = QApplication(sys.argv)
#2.创建窗体实例
myMain = QWidget(flags=Qt.MSWindowsFixedSizeDialogHint)
#3.显示窗体
myMain.show()
#4.运行app
sys.exit(app.exec_())
- 单继承模式写法
一个完整程序的实现往往包含很多要素,如界面、槽函数、信号等,为了让我们的界面代码与业务逻辑代码进行分离,往往使用单继承模式。
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent, flags=Qt.MSWindowsFixedSizeDialogHint) # 调用父类的构造函数,创建QWidget窗体
if __name__ == '__main__':
#1.创建app实例
app = QApplication(sys.argv)
#2.创建窗体实例
myMain = QmyWidget()
#3.显示窗体
myMain.show()
#4.运行app
sys.exit(app.exec_())
2.【QWidgt常用方法】
- 设置窗口位置及大小
- 常用方法
窗口位置常用方法 | 说明 |
move(x, y) | 设置窗口位置,左上角x,y坐标 |
resize(width, height) | 设置窗口尺寸,宽度、高度 |
setGeometry(x, y, width, height) | 设置窗口在屏幕中的位置与窗口的大小,x,y,宽度和高度 |
adjustSize() | 根据内容自适应大小 |
setFixedSize() | 设置固定尺寸 |
setWindowTitle() | 设置窗体标题 |
- 代码示例
self.move(150, 150) # 设置窗口位置
self.resize(300, 200) # 设置窗口大小
self.setWindowTitle('QWidgt组件演示') # 设置窗口标题
- 设置气泡提示
- 常用方法
方法 | 说明 |
setToolTip(str) | 鼠标悬停在控件上一会后, 展示在旁边。 |
toolTip() | 获得信息提示内容。 |
setToolTipDuration(msec) | 设置显示时长。 |
toolTipDuration() | 获取显示时长。 |
setWhatsThis(str) | 切换到"查看这是啥"模式, 点击该控件时显示。 |
whatsThis() | 获取这是啥内容。 |
- 代码示例
# 设置气泡提示
self.setToolTip('这是一个气泡显示')
- 设置窗口图标
- 常用方法
方法 | 说明 |
setWindowIcon() | 设置窗体图标,需要传QIcon对象 |
- 代码示例
self.setWindowIcon(QIcon('logo.png'))