在qt 4信号和插槽中被clicked()和clicked(bool)困惑
我正在使用qt 4.8.6和visual studio 2008来开发一个项目,并通过clicked()和clicked(bool)来混淆。 在为一个会发出信号的对象建立一个连接时:
connect(sender, SIGNAL(clicked(bool)), receiver, SLOT(myslot()));
会触发myslot(); 和
connect(sender, SIGNAL(clicked()), receiver, SLOT(myslot()));
将不会触发它。 但是,我发现其他很多关于连接的例子都使用clicked()没有点击(bool)。 为什么我不能使用clicked()? 我通过Qt助手浏览:
void QAbstractButton :: clicked(bool checked = false)[signal]
当按钮被激活时(即,当鼠标光标在按钮内时按下然后释放),当键入快捷键时,或者当调用click()或animateClick()时,该信号被发射。 值得注意的是,如果调用setDown(),setChecked()或toggle(),则不会发出此信号。
如果该按钮是可检查的,则选中该按钮时检查为true;如果该按钮未选中,则检查为false。
我找不到它的原因。 同时, “检查”和“未检查”有什么区别?
顺便说一下,我通过按下鼠标左键并拖动光标来建立连接。 另一种方法是右键点击对象,然后上下文菜单将会“去插槽”,但我的Qt设计器(4.8.6)不会。 如何处理它?
3个问题希望得到帮助。 提前谢谢了。
我不确定我是否真的理解了这个问题,但是无法连接到clicked()
信号的原因是因为没有这样的事情......函数配置文件明显被clicked(bool)
(请参阅文档)。
Qt只会在无法连接信号/插槽(qWarning到stderr)时显示运行时错误,在编译时并不明显。 尝试检查程序输出是否有警告。
编辑:删除误导性信息。
链接地址: http://www.djcxy.com/p/39317.html上一篇: confused by clicked() and clicked(bool) in qt 4 signal and slot