前言
QT,一个跨平台的GUI编程框架,支持多种语言,java、c++、python。
此笔记基于python。
安装
Qt,对于python而言,QT支持的版本最低是3.6,在官方文档中,建议使用虚拟环境,即venu,笔记中使用pycharm工具自动配置。
pycharm中,创建项目,软件自动配置虚拟环境。
当然也可以不使用pycharm。
以下为官网对创建和激活环境的描述:
创建和激活环境 您可以通过在终端上运行以下命令来做到这一点:
python -m venv env,(您的 Python 可执行文件可能被调用`python3`)
用于 Linux 和 macOS 的源 env/bin/activate
适用于 Windows 的env\Scripts\activate.bat
安装pyside6包,可使用pip,也可以在pycharm中搜索安装。
如上图,pycharm中直接安装即可。(安装可能会因为网速等问题过慢,可自行更换镜像)
此处添加即可。
pip命令如下:
pip install pyside6,用于最新版本。
pip install pyside6==6.0,专门针对版本6.0
也可以从官方的服务器安装特定快照:
pip install --index-url=https://download.qt.io/snapshots/ci/pyside/6.0.0/latest pyside6 --trusted-host download.qt.io
测试
import PySide6.QtCore
print(PySide6.__version__)
引入核心包,打印版本信息即可。
6.3.1(笔记版本)
Helloworld
pyside6模块提供了一些子模块用来访问Qt的API。
import sys
from PySide6 import QtWidgets, QtCore,QtGui
class MyWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.hello = 'hello Tom'
self.button = QtWidgets.QPushButton('点我')
self.text = QtWidgets.QLabel('helloworld', 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(self.hello)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec())
这是官方文档中的例子,我只是取消了随机,让他变得更简单一点。
虽然他看起来十分的简单,但实际上这个例子包含了Qt的很多核心内容。
如果你尝试运行了这个代码,你会发现当你点击按钮的时候,屏幕上的文字会发生变化,这看起来似乎没什么了不起的,但实际上,这让我们的小部件和其他小部件进行了通信,它足以帮我们解决很多。
代码之中
self.button.clicked.connect(self.magic)
其中clicked是QPushButton的一个预定义信号,在使用之中不会提示,甚至idea还有弹出警告,因为在QPushButton中找不到任何名为clicked的属性与方法。
但实际上,当我们观察QPushButton类,会发现他继承了父类QAbstractButton,而父类拥有此方法。
对于这个警告,直接选择忽略即可。
运行结果: