按钮组上的 Qt 信号未连接
Qt signal on buttongroup not connected
>我有一个用两个单选按钮定义的按钮组
buttonGroupFFTDimension = new QButtonGroup(this);
buttonGroupFFTDimension->addButton(ui->radioButton1D, 1);
buttonGroupFFTDimension->addButton(ui->radioButton2D, 2);
buttonGroupFFTDimension->setExclusive(true);
ui->radioButton1D->setChecked(true);
连接还会编译
connect(this->buttonGroupFFTDimension, static_cast<void(QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked),
this, &MainWindow::on_buttonGroupFFTDimension_buttonClicked);
但它在运行时抛出并出错
QMetaObject::connectSlotsByName: No matching signal for on_buttonGroupFFTDimension_buttonClicked(int)
我承认我不熟悉新的连接语法,但也看不到明显的错误。怎么了?
显示的消息是因为您使用的是Qt Designer,并且它使用connectSlotsByName
方法来连接各种元素,它可以识别格式on_somesender_somesignal
,并且在您的情况下与您的插槽匹配。
- 第一个解决方案:无需使用
connect
功能,这将自动执行此操作。另外,我认为插槽没有所需的int类型作为参数。
在您的情况下,插槽应如下所示:
private slots:
void on_buttonGroupFFTDimension_buttonClicked (int val);
- 另一种可能的解决方案是重命名插槽,然后运行
make clean
并qmake
.
相关文章:
- 如何使用新语法QT5将信号连接到信号?
- 使用std::bind将Qt信号连接到插槽
- 为什么信号连接会使套接字客户端对象失效?
- 如何将信号连接到类的所有实例的插槽
- Qt:将受保护的 QListWidget::itemChanged 信号连接到插槽
- QML组件与信号连接
- Qt:如何将不同类别的静态信号连接到插槽
- QT:将信号连接到具有移动语义的插槽
- 将一个信号连接到多个插槽 Qt
- Qt5:无法将信号连接到插槽
- 这个Qt DBus信号连接代码是否正确
- QtQuick2 无法将应用程序窗口关闭信号连接到方法(C++新手)
- 将返回对象的信号连接到没有参数的插槽
- 如何使用新的QObject::连接语法与函数指针将QSslSocket::错误信号连接到插槽
- Qt将信号连接到插槽
- Qt5 将自定义窗口关闭信号连接到其他窗口
- 将所有对象信号连接到单个插槽
- 如何使用QT5中的lambdas将具有int参数的信号连接到具有枚举参数with的插槽
- 可以将多个信号连接到单个插槽
- 是否可以在没有接收器实例的情况下将信号连接到静态插槽