QComboBox Qt Creator信号插槽永远不会启动
QComboBox Qt Creator signals slots never fire
我有一个非常简单的Qt窗口,其中包含组合框,我试图用Qt Creator为这个组合框创建信号槽。我试过activated
、currentIndexChanged
、currentTextChanged
,都没用。原因可能是什么?同一窗口上的其他信号(按钮点击、菜单项点击)正常启动。操作系统是Windows 7。
当您在Qt Designer中在Form(如QMainWindow
Form)上创建槽时,如果右键单击并单击Go to slot...
,它会使用命名约定根据槽的名称自动将ui表单元素连接到槽。
创建这些窗之后,您可以将对象名称更改为其他名称。
就像将comboBox1
改为myComboBox
一样,它会破坏自动连接的ui表单元素,因为名称不同。
http://doc.qt.io/qt-5/designer-using-a-ui-file.html#automatic-连接
具有自动连接功能的小工具和对话框
尽管在对话框和在构造函数中连接它,我们可以使用
QMetaObject
的连接OK按钮的clicked()
信号的自动连接设施到我们子类中的一个插槽。uic在对话框的setupUi()
函数,所以我们只需要声明和使用符合标准约定的名称实现插槽:void on_<object name>_<signal name>(<signal parameters>);
这就是你的组合框开始无法连接的最可能原因。
如果不是这样的话,当基于命名的显式连接调用失败时,您可以看到它们的输出:
QObject::connect(ui->comboBox, SIGNAL(misspelled_signal()), this, SLOT(non_existent_slot()));
在运行时,您将在Application Output
选项卡中获得非常有用的输出,以帮助诊断错误。
希望能帮上忙。
相关文章:
- 如何创建一个空的全局类并在启动时实例化它
- 即使我读取了所有内容,在FIFO上打开的QSocketNotifier也会一直启动
- 为什么是谷神星协方差.计算()似乎永远运行而不返回?
- 使用 std::string () const 函数启动线程或未来
- 密码登录程序将永远循环并显示不正确的结果
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- 如何创建线程序列以按照启动顺序执行任务?
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- SFML 碰撞永远不会在我的系统中注册
- 在挂钩启动新线程时解除挂钩进程
- 程序无法启动,因为缺少 libmpc-3.dll
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- QSerialPort 在应用程序启动之前正在使用中
- 无法在 Arch Linux 中启动虚幻引擎 4
- QThread永远不会启动
- QComboBox Qt Creator信号插槽永远不会启动
- 为什么我的代码永远不会重新启动命令
- 创建一个 for(永远)循环。系统不想启动