• 8604阅读
  • 4回复

pyqt如何通过信号槽来传递参数的问题 [复制链接]

上一主题 下一主题
离线leiyu0815
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-22
现在有n个RadioButton,目的是想要知道点击的是哪个RadioButton,该怎么在信号槽定义中写???

信号槽连接如下:
self.connect(self.radioButton_i, QtCore.SIGNAL("clicked()"), self.showTasks())
就是想让showTasks()方法知道,click的是那个RadioButton。。。
谢谢指教!!!
离线dbzhang800

只看该作者 1楼 发表于: 2010-11-22
标题取得不好,你内容中 问的是 多个信号对应一个槽的问题的。
离线leiyu0815
只看该作者 2楼 发表于: 2010-11-22
问题解决了,利用partial()方法来解决的

from functions import partial

#下面这句,将showTasks与radioButton_i.text()捆绑到一起
self.radioButtoncallback=partial(self.showTasks, self.radioButton_i.text())
#信号槽的传递
self.connect(self.radioButton_i, QtCore.SIGNAL("clicked()"), self.radioButtoncallback)

def showTasks(self,who):
       pass
这样,showTasks()在调用的同时,也会把raidoButton_i.text()的内容传递给showTasks()的who参数。
离线luoyes

只看该作者 3楼 发表于: 2010-11-22
在槽函数里调用sender 函数获取信号发送者, 不就可以知道是谁激发的了吗
离线mdantmengda
只看该作者 4楼 发表于: 2011-03-29
self.connect(self.radioButton, QtCore.SIGNAL("clicked()"), lambda index=i:self.radioButtoncallback(index))

这样写行么~~
快速回复
限100 字节
 
上一个 下一个