python qt6学习
利用designer创建窗口,生成ui
designer在python的位置:
C:\Users\bu\AppData\Local\Programs\Python\Python39\Scripts\pyside6-designer.exe
从 a.ui 文件生成 Python 文件:pyside6-uic -i form.ui -o ui_form.py
从 a.qrc 文件生成 Python 文件:pyside6-rcc -i resources.qrc -o rc_resources.py
使用 pyside6-designer 命令打开 Qt Designer 以编辑或创建 .ui 文件
使用 pyside6-uic 工具可以将这些 .ui 文件转换为 Python 代码,让你可以在主函数中引用这些代码。所以在你部署的应用程序中包含 .ui 文件并不是必需的。
简单例子
import sys
from PySide6.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel("Hello World!")
label.show()
app.exec_()
可以向 QApplication 对象传递任意参数。一般情况下我们不需要传递参数,或者也可以像下面这样写:
还创建了 QLabel 对象。QLabel 是一个可以显示文本和图像的容器。文本可以是简单文本,也可以是富文本,像HTML一样:
label = QLabel("<font color=red size=40>Hello World!</font>")
在创建完一个标签后,我们要对它调用 show() 函数。
调用 app.exec_() 进入主循环,开始执行代码
简单的按钮
import sys
from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.QtCore import Slot
def say_hello():
print("Button clicked, Hello!")
app = QApplication(sys.argv)
# 在创建时传入的字符串会显示在按钮上
button = QPushButton("Click me")
#button.clicked,执行say_hello()
button.clicked.connect(say_hello())
#显示这个按钮,并进入主循环
button.show()
app.exec_()
使用QUiLoader和pyside6-uic导入ui文件
Qt Designer 的使用在官网的 Using Qt Designer(https://doc.qt.io/qtcreator/creator-using-qt-designer.html) 教程里详细介绍。
方法一:生成 Python 类
实例:
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCore import QFile
from ui_mainwindow import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
方法二:直接加载 UI 文件
QUiLoader 类可以让你动态地载入 UI 文件:
# File: main.py
import sys
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import QFile, QIODevice
if __name__ == "__main__":
app = QApplication(sys.argv)
ui_file_name = "mainwindow.ui"
ui_file = QFile(ui_file_name)
if not ui_file.open(QIODevice.ReadOnly):
print(f"Cannot open {ui_file_name}: {ui_file.errorString()}")
sys.exit(-1)
loader = QUiLoader()
window = loader.load(ui_file)
ui_file.close()
if not window:
print(loader.errorString())
sys.exit(-1)
window.show()
sys.exit(app.exec())
常用属性
.appendPlainText("添加文本\n") #插入文本
.clear() #清空文本内容
.toPlainText() 复制文本框的内容
.setPlainText() 设置
消息框
一、提供的类型
QMessageBox.information 信息框
QMessageBox.question 问答框
QMessageBox.warning 警告
QMessageBox.ctitical危险
QMessageBox.about 关于
二、引用
from PyQt6.QtWidgets import QMessageBox
三、代码示例
复制代码
#self 当前窗口的夫窗口
# 消息:信息
QMessageBox.information(self,"消息框标题","这是一条消息。",QMessageBox.Yes | QMessageBox.No)
# 消息:问答
QMessageBox.question(self,"消息框标题","这是一条问答。",QMessageBox.Yes | QMessageBox.No)
# 消息:警告warning
QMessageBox.warning(self,"消息框标题","这是一条警告。",QMessageBox.Yes | QMessageBox.No)
# 消息:危险ctitical
QMessageBox.ctitical(self,"消息框标题","这是一条危险。",QMessageBox.Yes | QMessageBox.No)
# 消息:关于
QMessageBox.about(self,"消息框标题","这是关于软件的说明",QMessageBox.Yes | QMessageBox.No)