信号和槽是Qt的特色,同样也是PySide的特点,信号和槽的特点:
一个信号可以连接多个槽
一个信号可以连接另一个信号
信号参与可以是任何python类型
一个槽可以监听多个信号
信号与槽的连接方式是同步连接,也可以是异步连接
信号与槽的连接可能会跨线程
信号可能会断开
信号有三个方法:
def connect (receiver)
def disconnect (receiver)
def emit (*args)
我们需要使用到connect(),通过官方的描述,
Signal.connect(receiver[, type=Qt.AutoConnection])
Create a connection between this signal and a receiver, the receiver can be a Python callable, a Slot or a Signal.
我们可以知道,connect方法传入一个接收函数,建立联系。我们利用之前的代码继续实现,在定义左侧QTreeWidget时加入下面代码:
# 点击显示信息的signal
self.tree.itemClicked.connect(self.itemClickedChange)
这样就添加了点击的信号,注意,itemClicked是QTreeWidget的信号函数,通过这个信号的connect连接到自定义的itemClickedChange方法(如下:)