当前位置: 首页 > news >正文

关于pyqt的一些用法

QT原生是C++,pyqt基于python语言。

关于插件:

安装一个PyUIC,一个Qt Designer

点击Qt Designer可以出来ui配置页面,和qt原生IDE基本一样
上面操作会生成.ui文件,选中此文件,点击PyUIC,会生成对应的py文件,尽量不要修改这个py文件,因为每次使用pyuic都会和cubemx一样覆盖掉之前的修改,可以新建另外一个py文件,在那个里面导入调用,调用方法如下:

import sys
import threading
import timeimport schedule
from PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsOpacityEffectfrom ST_UPPER import Ui_SCS_TOOL
from PyQt5 import QtCore, QtGui, QtWidgets, QtTest
from 设备连接测试 import Ui_Dialog as Dev_Conn_Test_uiclass MyMainWindow(QMainWindow, Ui_SCS_TOOL):def __init__(self):super(MyMainWindow, self).__init__()self.setupUi(self)def UI_Dev_Conn_Test(self, label):  #设备连接测试self.dialog = QtWidgets.QDialog()ui = Dev_Conn_Test_ui()ui.setupUi(self.dialog)# 弹出对话框并等待用户关闭if self.dialog.exec_() == QtWidgets.QDialog.Accepted:MAC_text = ui.lineEdit_MAC.text()print(MAC_text, len(MAC_text))

关于延时:

使用time.sleep()会进行阻塞式延时,整个GUI会被卡住,而且遇到了一些逻辑混乱的问题,可以使用QtTest.QTest.qWait()进行替代,实现类似非阻塞式延时

关于闪烁:

闪烁用的定时器要有触发口和依附的逻辑,建议使用schedule,使用起来更方便,但是如果当前main不是一个循序逻辑的话(一般这种带ui的不是),还需要开一个线程来运行schedule.run_pending(),想停止的话调用schedule.clear()

关于画圆:

在ui上放一个QLabel,在属性的styleSheet中输入border-radius:25px;background-color:yellow\n,就会生成一个黄色颜色的圆,圆的大小是50(geometry中的高度和宽度),这个50和25px必需是2倍关系,否则不圆

关于槽函数:

槽函数可以直接在ui中添加,点击工具栏的“编辑信号\槽”即可进行拖拽式配置,但是试了半天,不能将某个qlabel对象作为参数传给这个槽函数,所以只能将使用pyuic中生成的槽函数注释,重新绑定,例

删除生成文件中的  self.pushButton_Prog_Config.clicked.connect(SCS_TOOL.UI_Prog_Config)
在个人文件中添加 self.pushButton_Prog_Config.clicked.connect(lambda: self.UI_Prog_Config(self.label_Prog_Config))

上述中的self.label_Prog_Config就是qlabel对象,这样可以将按钮和qlabel绑定了,但是每次调用pyuic都要记得注释,否则会调用两次槽函数

关于按钮(qpushbutton)的锁定:

锁定是button.setEnabled(False) 按钮会变灰
解锁是button.setEnabled(True)
如果是配置窗口的全部按钮:

for button in self.findChildren(QtWidgets.QPushButton):button.setEnabled(False)

注意网上提到的一些方法是原生qt的,好多是C++语法的,不能使用

http://www.lryc.cn/news/61070.html

相关文章:

  • 【Paper Note】ViViT: A Video Vision Transformer
  • Java入坑之IO操作
  • 校园小助手【GUI/Swing+MySQL】(Java课设)
  • String的不可变特性
  • 使用MMDeploy(预编译包)转换MMxx(MMDeploy支持库均可)pth权重到onnx,并使用python SDK进行部署验证
  • Shiro安全框架简介
  • 三行Python代码,让数据处理速度提高2到6倍
  • 空间向量模长
  • 活动需求中灵活使用Redis提升生产力
  • Java知识点学习(第16天)
  • ORA-1688: unable to extend table AUDSYS.AUD$UNIFIED
  • 抖音滑块以及轨迹分析
  • C#生成单色bmp图片,转为单色bmp图片 任意语言完全用字节拼一张单色图,LCD取模 其它格式图片转为单色图
  • 【瑞吉外卖】002 -- 后台登录功能开发
  • 【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)
  • java IO流_1
  • 【回忆 总结】我的大学四年
  • 深度解析OEKO
  • Golang gorm
  • rk3568 适配摄像头 (CIF协议)
  • 今天面试招了个25K的测试员,从腾讯出来的果然都有两把刷子···
  • Redis---集群环境准备
  • 数据结构考研版——队列的配置问题
  • 【SOAP-WebService系列】SOAP学习笔记
  • 材料科学|名词解释终版!!!
  • 永久免费内网穿透不限制速度
  • JAVA开发运维(云基础设备监控)
  • 现在备考2023年5月软考网络工程师时间够吗?
  • webp怎么转换成png,4个方法教你快速处理
  • 程序员能干多久?程序员能干到多大年龄?