c++ - 插槽被意外调用

标签 c++ qt

我有一个按钮的事件连接到一个插槽,如下所示:

myButton = new QPushButton();
myButton->setText("Connect");
myButton->setFocus();
connect(myButton,SIGNAL(released()),this, SLOT(doStuff()));

当我运行该程序时,如果我右键单击“连接”按钮,这将按预期调用 doStuff() 函数。

然而,当我按下并释放空格键时,这个插槽也会被调用。这是不需要的,因为我想将另一个插槽连接到空格键按下事件。我不相信我有任何其他信号连接到“doStuff”。我错过了什么吗?为什么会这样?

编辑: 我想在空格键释放信号上调用其他一些插槽。我怎样才能解决这个问题?通过移除焦点?

最佳答案

您基本上可以删除 setFocus() 或者您需要实现按键事件。看看这些[1] , [2]线程。

关于c++ - 插槽被意外调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396859/

相关文章:

cocoa - 将cocoa webview嵌入到QT应用程序时的事件问题

c++ - 更改 QTreeView 的行背景颜色不起作用

c++ - 如何使用 Ghostscript 自动安装 RedMon

c++ - 如果为鼠标事件设置为透明,您如何仍然使用小部件的功能?

qt - QML:通过信号与曾祖 parent 沟通

python - _ZSt28__throw_bad_array_new_lengthv 尝试在编译共享对象后在 Python 中导入 C++ 代码

c++ - 如何使用 CGI 下载文件

C++11 Lambda 问题

c++ - 将组件添加到从代码中使用 qt creator 创建的布局

c++ - C++ 中的数组大小