1. 基本窗口
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
appProcess = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('hello')
window.show()
sys.exit(app.exec_())
QApplication()
, 该类的对象每个窗口都需要有一个,用于处理事件
QWidget()
, 是最基本的窗口类
2. 用类的实例来创建窗口
import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,
QPushButton, QApplication)
from PyQt5.QtGui import QFont
class WindowTest(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Tooltips')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = WindowTest()
sys.exit(app.exec_())
- 定义了一个叫
WindowTest
的类,其中有两个函数:初始化函数__init__(self)
和定义的initUI
__init(self)_
: 通过super().__init__()
调用父类的初始换函数,其中super()
指代父类
- 在创建定义的
WindowTest
类的对象时,会自动运行初始化方法,也就是我们在WindowTest
类中定义的__init(self)_
方法。
3. 按钮、按钮提示与字体调整
import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,
QPushButton, QApplication)
from PyQt5.QtGui import QFont
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn = QPushButton('Button', self)
self.setToolTip('This is a <b>QWidget</b> widget')
QToolTip.setFont(QFont('SansSerif', 10))
btn.resize(btn.sizeHint())
self.setWindowTitle('Tooltips')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QPushButton('NameOfButton', window_whereButBelongs)
: 定义按钮,第一个参数为按钮显示的字符;第二个参数为按钮附着的页面,在本例中为创建的QWidget
窗口
self.setToolTip('content')
: 定义了该窗口所有按钮提示的文字,content
为其中的内容
QToolTip.setFont(QFont('SansSerif', 10))
: 定义了按钮提示的字体与大小
4. 消息窗口——退出确认提示
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Message box')
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',"Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
event
: 在closeEvent
中用到的event
,属于QCloseEvent
。在关闭窗口Qwidget
时,该操作会被event
接收,并改变关闭窗口默认操作——执行定义的函数
QMessageBox.question(self, 'Title',"content", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
: 该函数有五个个参数,self
, title
, content
, QMessageBox.Yes | QMessageBox.No
, QMessageBox.No
。
title
: 退出提示框的标题
content
: 推出提示框显示的内容
QMessageBox.Yes | QMessageBox.No
: 推出提示框显示的两个按钮,中间用|
分隔开来。其中两个按钮的内容是QT中定义好的yes和no
QMessageBox.No
: 第四个参数是默认选项,这里默认选了no
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码