信号的定义
PyQt5中的信号我的理解就像饭店出菜口的那个铃,➡️
需要的时候就是“叮”一下.然后厨师会叫出菜名或者桌号,服务员就会把菜送到正确的顾客桌上.
下面说正体:(此处不讲什么信号与槽,single与slot,我觉得太复杂)
关于自定义信号,你需要掌握以下几个点:
- 信号的声明
- 信号的触发
- 信号的接收
下面我们要实现这样一个例子:有一个QTableView控件(3*3大小),无论我们单击哪个单元格,都会在控制台输出该行的第一列的内容.
-
信号的声明(买一个传菜铃)
需要自定义某个控件的信号,你需要创建一个新类继承原来的类,比如:
class MyTableView(QTableView):
def __init__(self, parent = None):
super(MyTableView,self).__init__(parent)
这里我们就创建了一个自己的MyTableView类,继承于QTableView.
他的用法跟正常的QTableView用法一毛一样,然后我们就要来对信号进行声明
class MyTableView(QTableView):
doubleClickedItem = pyqtSignal(str)
def __init__(self, parent = None):
super(MyTableView,self).__init__(parent)
在初始化函数__init__ 之前加入的就是自定义信号的申明,这个声明只能在初始化函数外面,pyqtSignal这个类是在PyQt5.QtCore里面.
参数(str),这个