一、前言

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'))