PYQT的使用入门

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

QTDesigner初识

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

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

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

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

QTDesigner上方为快捷处理按钮

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

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

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

接下来,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_())

给按钮赋予功能

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

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

完整代码

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_())

相关推荐

  1. 《开始使用PyQT》 第01章 PyQT入门 01 PyQT框架概述

    2023-12-24 13:40:04       32 阅读
  2. 《开始使用PyQT》 第01章 PyQT入门 03 用户界面介绍

    2023-12-24 13:40:04       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-24 13:40:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-24 13:40:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-24 13:40:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-24 13:40:04       20 阅读

热门阅读

  1. 网络安全法概论

    2023-12-24 13:40:04       35 阅读
  2. 基于Simulink的光伏阵列和电池充放电控制

    2023-12-24 13:40:04       45 阅读
  3. 时间与时间戳转换及android和ios对时间识别的区别

    2023-12-24 13:40:04       36 阅读
  4. mysql(50) : 数据导出为csv

    2023-12-24 13:40:04       39 阅读
  5. 计算鞍点(C++)

    2023-12-24 13:40:04       38 阅读
  6. C++_析构函数

    2023-12-24 13:40:04       31 阅读
  7. 怎样学习嵌入式C语言编程

    2023-12-24 13:40:04       47 阅读
  8. React拖拽实践

    2023-12-24 13:40:04       44 阅读
  9. Pytohn data mode plt

    2023-12-24 13:40:04       34 阅读