PYQT的使用入门

上一章节:VSCode安装PYQT5-CSDN博客

QTDesigner初识

vscode导航栏右键,新建ui文件,弹出QT Designer。

PYQT的使用入门_第1张图片PYQT的使用入门_第2张图片

完成创建后,可以在新窗口中进行UI布局。

QTDesigner左侧为组件库,中间为UI布局界面,右侧分别为对象查看器、组件属性编辑器、资源浏览器。

将需要的组件拉进UI窗口,然后在右侧更新属性信息。

QTDesigner上方为快捷处理按钮

PYQT的使用入门_第3张图片

首先,将Frame拖入,然后分别拖入PushButton、2个TextLabel,放到这个Frame中。接下来,按住Ctrl,分别点击这三个组件,选中后点击水平分布进行对齐。

使用Frame的优点:拖动Frame,则可以不改变组件间相对位置的情况下,进行移动。

PYQT的使用入门_第4张图片PYQT的使用入门_第5张图片

选中一个组件,在右侧编辑ObjectName对象名,从左到右分别赋值:DeviceConnectBt、DeviceNameLabel、SignalStrengthLabel。ObjectName用于通过代码对组件进行属性操作、事件绑定。

PYQT的使用入门_第6张图片

接下来,Ctrl+S,保存文件,MyFirstUi.ui。关闭QTDesigner。

在VSCode中,将MyFirstUi.ui,右键选择,PYQT:Compile Form,生成Ui_MyFirstUi.py文件。

更改ui文件,只要右键ui文件,选择PYQT:Edit in Designer。

注:每次修改ui文件后,需要重新编译py文件,即执行PYQT:Compile Form操作。

代码部分

新建MyMainWindow.py文件,用于执行图形界面显示和事件控制。

实现功能:模拟实现设备连接信息显示。

            

基本套路

启动ui窗口的程序套路,运行该代码就能将项目运行起来。

from PyQt5.QtWidgets import QMainWindow, QApplication
from Ui_MyFirstUi import Ui_MainWindow
import sys


class MainPageWindow(QMainWindow, Ui_MainWindow):
    # init part
    def __init__(self, parent=None):
        super(MainPageWindow, self).__init__(parent)
        self.setupUi(self)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainPageWindow()
    mainWindow.show()
    sys.exit(app.exec_())

PYQT的使用入门_第7张图片

给按钮赋予功能

点击按钮,显示设备名和信号强度,按钮名变为“断开连接”。

再次点击,设备名、信号强度消失,按钮名变为“点击连接”。

PYQT的使用入门_第8张图片

PYQT的使用入门_第9张图片

完整代码

MyMainWindow.py

from PyQt5.QtWidgets import QMainWindow, QApplication
from Ui_MyFirstUi import Ui_MainWindow
import sys


class MainPageWindow(QMainWindow, Ui_MainWindow):
    # 初始化程序
    def __init__(self, parent=None):
        super(MainPageWindow, self).__init__(parent)
        self.setupUi(self)
        self.Event_DeveiceConnectBt()

    def Event_DeveiceConnectBt(self):
        self.DeviceConnectBt.clicked.connect(self.actionEvent_showDeviceName)

    def actionEvent_showDeviceName(self):
        # 显示设备信息
        if self.DeviceConnectBt.text() == "点击连接":
            self.DeviceNameLabel.setText("Device_Ediffier_Z3")
            self.SignalStrengthLabel.setStyleSheet(
                "QLabel { background-color: green; color:white;}")
            self.SignalStrengthLabel.setText("信号强")
            self.DeviceConnectBt.setText("断开连接")
            print(f"当前按钮状态:{self.DeviceConnectBt.text()}")
        # 隐藏设备信息
        elif self.DeviceConnectBt.text() == "断开连接":
            self.DeviceNameLabel.setText("")
            self.SignalStrengthLabel.setStyleSheet(
                "QLabel { background-color: rgb(240, 240, 240); color:white;}")
            self.SignalStrengthLabel.setText("")
            self.DeviceConnectBt.setText("点击连接")
            print(f"当前按钮状态:{self.DeviceConnectBt.text()}")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainPageWindow()
    mainWindow.show()
    sys.exit(app.exec_())

你可能感兴趣的:(PYQT,pyqt)