环境需求:python3.6+
官方文档:Qt for Python Quick start - Qt for Python
安装【windows11环境】
pip install pyside6
## pip install --index-url=https://download.qt.io/snapshots/ci/pyside/6.0.0/latest pyside6 --trusted-host download.qt.io
查看安装版本,目前最新为6.4.0版本
import PySide6.QtCore
# Prints PySide6 version
print(PySide6.__version__)
# Prints the Qt version used to compile PySide6
print(PySide6.QtCore.__version__)
#6.4.0
#6.4.0
简易示例
a.创建一个?hello_world.py 的文件,内容如下
import random
import sys
from PySide6 import QtCore, QtWidgets
class MyWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
self.button = QtWidgets.QPushButton("Click me!")
self.text = QtWidgets.QLabel("Hello World", alignment=QtCore.Qt.AlignCenter)
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.button)
self.button.clicked.connect(self.magic)
@QtCore.Slot()
def magic(self):
self.text.setText(random.choice(self.hello))
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec())
?
?配合pycharm使用 qt designer
运行 Pycharm,Settings-->Tools-->External Tools?点击 +,添加 QtDesigner
添加 QtDesigner
名称:QtDesigner(可自己定义)
程序:Pyside6-Designer 的安装路径。W:\sources\pyqts\venv\Scripts\pyside6-designer.exe
实参:不填
工作目录: $FileDir$
??配合pycharm使用 pyside_uic,将ui转换为python文件
名称:PyUic(可自己定义)
程序:Pyside6-uic 的安装路径。W:\sources\pyqts\venv\Scripts\pyside6-uic.exe
实参:$FileName$ -o $FileNameWithoutExtension$.py
工作目录: $FileDir$
?使用
?拖拽添加控件
?在Python中将ui转换为python代码?
?
?
?运行
在新生成的文件,添加如下代码
if __name__ == "__main__":
import sys
from PySide6 import QtWidgets
app = QtWidgets.QApplication(sys.argv) # 创建一个QApplication,也就是你要开发的软件app
MainWindow = QtWidgets.QMainWindow() # 创建一个QMainWindow,用来装载你需要的各种组件、控件
ui = Ui_MainWindow() # ui是你创建的ui类的实例化对象
ui.setupUi(MainWindow) # 执行类中的setupUi方法,方法的参数是第二步中创建的QMainWindow
MainWindow.show() # 执行QMainWindow的show()方法,显示这个QMainWindow
sys.exit(app.exec()) # 使用exit()或者点击关闭按钮退出QApplication
?
?
|