Pyqt5部分学习笔记
1.信号和槽机制
一类是控件自带的常用信号,clicked,changed等等,不展开写,可根据需求在ide中自己找到这些事件的信号。
另一类是自定义信号,这部分比较关键,他是不同pyqt5子线程与主线程之间通信的主要方式,因为所有内部函数在子线程处理后返回的结果,需要通过发射信号来触发Gui界面控件的变化或输出。
在实际开发中,我们会用到不同的信号,也会需要触发不同控件的输出,这时候定义一个专门的pyqtSignal信号类,在类中定义多个信号,只需要在运行时实例化这个信号对象就可以创建所有的信号子类,方便后续添加信号和调用信号。
# 自定义信号源对象类型,一定要继承自 QObject
class MySignals(QObject):
# 定义一种信号,两个参数 类型分别是: QTextBrowser 和 字符串
# 调用 emit方法 发信号时,传入参数 必须是这里指定的 参数类型
text_browser_print = pyqtSignal(QTextBrowser, str)
text_lineedit_print = pyqtSignal(QLineEdit, str)
# 还可以定义其他种类的信号
update_table = Signal(str)
class MaiWin:
def __init__(self):
self.ms = MySignal()
# 自定义信号的处理函数
global_ms.text_print.connect(self.printToGui)
....
def printToGui(self, fb, text):
fb.