【发布时间】:2017-07-14 14:11:21
【问题描述】:
我有一个用两个单选按钮定义的按钮组
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)
我承认我不熟悉新的连接语法,但也没有看到明显的错误。怎么了?
【问题讨论】:
-
您可以展示如何定义插槽:
on_buttonGroupFFTDimension_buttonClicked -
显示的消息是因为您正在使用
Qt Designer,它使用connectSlotsByName方法连接各种元素,它识别格式on_somesender_somesignal,并且在您的情况下匹配您的插槽,请尝试更改插槽名称,运行make clean,然后运行qmake。
标签: c++ qt qt5 qt-signals qt-slot