基于python的QT(一)
发表于:2022-08-19 |
字数统计: 705 | 阅读时长: 2分钟 | 阅读量:

前言

QT,一个跨平台的GUI编程框架,支持多种语言,java、c++、python。

此笔记基于python。

安装

Qt,对于python而言,QT支持的版本最低是3.6,在官方文档中,建议使用虚拟环境,即venu,笔记中使用pycharm工具自动配置。

pycharm中,创建项目,软件自动配置虚拟环境。

image-20220819105050533

当然也可以不使用pycharm。

以下为官网对创建和激活环境的描述:

创建和激活环境 您可以通过在终端上运行以下命令来做到这一点:

python -m venv env,(您的 Python 可执行文件可能被调用`python3`)

用于 Linux 和 macOS 的源 env/bin/activate

适用于 Windows 的env\Scripts\activate.bat

安装pyside6包,可使用pip,也可以在pycharm中搜索安装。

image-20220819104853500

如上图,pycharm中直接安装即可。(安装可能会因为网速等问题过慢,可自行更换镜像)

image-20220819105817742

此处添加即可。

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

测试

image-20220819105856465

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,而父类拥有此方法。

image-20220819112618328

对于这个警告,直接选择忽略即可。

运行结果:

image-20220819112659956

上一篇:
基于Python的QT(二)
下一篇:
入门项目——学生成绩管理系统(demo)