xiaohuihuitop / pyqt5

学习pyqt5,制作上位机

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

按键

image-20210208185820277

设置颜色

image-20210208190049430

image-20210208190108010

数字LCD

image-20210208190200305

image-20210208190223767

设置 个数 进制 样式 值

修改颜色

同按键的颜色设置

单行文字

image-20210208190357140

image-20210208191508411

image-20210208200742517

设置 数据 长度 模式 提示 对齐

其他设置

在Frame中的 的按钮无法控制大小 可以在下面更改

设置固定的 然后固定最大与最小大小

image-20210208201436037

字体大小

image-20210208212324499

字体方向

image-20210208215839086

Tab Widget

image-20210208232214433

image-20210208232351222

image-20210208232437002

image-20210208232557548

这个设置比较简单 就是icon设置好看点就行 图标的大小会影响整个页面选择的大小

image-20210208232732755

这里是更换页面标签显示的位置 下面那个是样式

简单使用

Tab Widget内部的小控件 是通过名字访问的

获取当前页面与判断

self.tabWidget.currentChanged.connect(self.Tab_Call)
if self.tabWidget.currentIndex() == 0:

添加资源文件

image-20210209121512548

image-20210209121535817

全部新建即可 然后加入 png图片 前缀设置无

阿里巴巴矢量图标库 可GitHub登录

转换

image-20210209121639315

文件分层

image-20210209121737495

修改 win.ui 转换后的文件

image-20210209121821931

制作记事本

文件与目录操作

image-20210212203610969

image-20210212203626334

image-20210212203636570

代码处理

path = QFileDialog.getOpenFileName(self, "请选择文件")[0]  # 返回的是一个元组数据,第一个成员是文件名

path = QFileDialog.getExistingDirectory(self,"请选择目录","") #  返回当前目录

重写父类

# 重写父类 关闭
def closeEvent(self, e) -> None:

判断文件是否修改与弹窗

if self.textEdit.document().isModified():

answer = QMessageBox.question(self, "请检查文件", "文件未保存,请确认", QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)

串口制作

image-20210222211905819

配置保存与读取

from PyQt5.QtCore import QSettings

        # 配置文件
        self.settings = QSettings("config.ini", QSettings.IniFormat)

        # 获取
        self.com = self.settings.value("SETUP/COM_VALUE")
        self.baud = self.settings.value("SETUP/BAUD_VALUE")

        # 设置
        if self.baud is None:
            self.baud = 9600
            self.settings.setValue("SETUP/BAUD_VALUE", self.baud)  # 保存

下拉框

self.baud = self.comboBox_baud.currentText()
self.comboBox_baud.setCurrentText(self.baud)

串口类的使用

from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo

        # 串口类
        self.com = QSerialPort()

获取所有串口

def button_refresh_cb(self):
    com_list = QSerialPortInfo.availablePorts()  # 获取所有的端口信息
    for com in com_list:
        print(com.portName())  # 返回串口号,如COM1
        print(com.description())  # 返回设备硬件描述 如USB-SERIAL CH340
        print(com.productIdentifier())  # 返回设备编号 如29987
        print(com.standardBaudRates())  # 返回设备的支持波特率列表

打开/关闭串口

self.com.setPortName(port)  # 使用名字 绑定COM口
if self.com.open(QSerialPort.ReadWrite) == False:  # QSerialPort  QIODevice  打开端口
    print("open err")
    QMessageBox.critical(self, '严重错误', '串口打开失败')
    self.com.close()
    return

if self.com.isOpen():
    print("is open")

设置串口参数

self.com.setBaudRate(int(self.baud))  # 波特率
self.com.setDataBits(self.com.Data8)  # 8
self.com.setParity(self.com.NoParity)  # n
self.com.setStopBits(self.com.OneStop)  # 1
self.com.setFlowControl(self.com.NoFlowControl)

读写数据

self.com.write(txData.encode('UTF-8'))
rxData = bytes(self.com.readAll())

About

学习pyqt5,制作上位机


Languages

Language:Python 100.0%