• 8630阅读
  • 17回复

[提问]当信号与槽的参数列表不一样时怎么办? [复制链接]

上一主题 下一主题
离线wx_huang
 
只看楼主 倒序阅读 楼主  发表于: 2012-02-24
我想通过点击一个按钮去做去通知带参数的槽一件事,但是按钮的的clicked()信号与比我定义的槽少了几个参数我该怎么做?要自己去重写QPushButton类,定义一个和槽一样的信号吗?
离线dxfans

只看该作者 1楼 发表于: 2012-02-24
您可以对QPushButton动态增加属性值(使用setProperty函数),然后在槽函数里获得这个属性值即可,这样就相当于传递了一个参数
离线wx_huang
只看该作者 2楼 发表于: 2012-02-24
回 1楼(dxfans) 的帖子
没用过有简单的例子吧,比较急给点参考可以吗??
离线jdwx

只看该作者 3楼 发表于: 2012-02-24
写一个槽函数做中介。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dxfans

只看该作者 4楼 发表于: 2012-02-24
Re:回 1楼(dxfans) 的帖子
引用第2楼wx_huang于2012-02-24 18:28发表的 回 1楼(dxfans) 的帖子 :
没用过有简单的例子吧,比较急给点参考可以吗??

描述:代码
附件: ButtonSlotPro.rar (2 K) 下载次数:10
离线fish0619

只看该作者 5楼 发表于: 2012-02-24
你这个明显很奇怪。最好还是另外定义一个slot吧。slot可以比signal少参数,但是不能多参数。
离线dxfans

只看该作者 6楼 发表于: 2012-02-25
回 5楼(fish0619) 的帖子
如果方便的话,请您也提供源码。。因为这个例子的源码很少。。。谢谢
离线dxfans

只看该作者 7楼 发表于: 2012-02-25
回 3楼(jdwx) 的帖子
如果方便的话,请也提供源码,这样才好讨论,谢谢
离线wk5882846

只看该作者 8楼 发表于: 2012-02-25
qt信号槽中好像是信号的参数必须多于槽的参数。
asd
离线xuweistudy
只看该作者 9楼 发表于: 2012-02-25
离线jdwx

只看该作者 10楼 发表于: 2012-02-25
回 7楼(dxfans) 的帖子
我的意思和5楼的一样,就这样一个简单的问题,也要代码?
public slots:
      void xxxxClicked();
void ?????::xxxxClicked()
{
     参数很多的那个槽(参数1,参数2,.......);
}
按钮的clicked信号和xxxxClicked()槽connect在一起。

顺便说说,你那个广告弄得艺术点,找你帖子的内容相当的费劲。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dxfans

只看该作者 11楼 发表于: 2012-02-25
回 楼主(wx_huang) 的帖子
你那个槽函数是的参数是需要取自哪里的值?
离线rcyboom

只看该作者 12楼 发表于: 2012-02-25
简单的方法请参见:
qsignalmap类
离线wx_huang
只看该作者 13楼 发表于: 2012-02-25
回 11楼(dxfans) 的帖子
QListWidgetItem 里面是程序的名字我想选中一个item 点按钮去打开一个程序。
离线dxfans

只看该作者 14楼 发表于: 2012-02-25
回 13楼(wx_huang) 的帖子
那你在槽函数里面都可以获得你所单击的那个QListWidgetItem对象。。。。
离线dxfans

只看该作者 15楼 发表于: 2012-02-25
回 10楼(jdwx) 的帖子
参数很多的那个槽(参数1,参数2,.......);?????
关键是参数1和参数2这些值是哪里来的,如果是直接可以获得的话,那何必要使用中介槽函数

离线jdwx

只看该作者 16楼 发表于: 2012-02-26
回 15楼(dxfans) 的帖子
我想通过点击一个按钮去做去通知带参数的槽一件事,但是按钮的的clicked()信号与比我定义的槽少了几个参数我该怎么做?要自己去重写QPushButton类,定义一个和槽一样的信号吗?
以上是楼主的问题,是他要用QPushButton的clicked信号的。
我怎么知道那些个参数从哪里来的,肯定不是从QPushButton里来的。

要是点击一个QPushButton来修改窗口标题怎么办。
QPushButton的clicked有一个bool参数,
setWindowTitle要一个QString类型的参数,
你怎么办?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线rcyboom

只看该作者 17楼 发表于: 2012-02-26
Re:回 15楼(dxfans) 的帖子
引用第16楼jdwx于2012-02-26 10:28发表的 回 15楼(dxfans) 的帖子 :
我想通过点击一个按钮去做去通知带参数的槽一件事,但是按钮的的clicked()信号与比我定义的槽少了几个参数我该怎么做?要自己去重写QPushButton类,定义一个和槽一样的信号吗?
以上是楼主的问题,是他要用QPushButton的clicked信号的。
我怎么知道那些个参数从哪里来的,肯定不是从QPushButton里来的。
要是点击一个QPushButton来修改窗口标题怎么办。
.......

难道这么多人就没一个用过QSignalMapper ?
里面的例子就是让click关联字符串参数的信号,当然也可以直接关联到槽函数
快速回复
限100 字节
 
上一个 下一个