我正在尝试将 QButtonGroup 连接到函数。但我就是无法让它工作。
我的代码现在看起来像什么:
mainwindow.h:
public slots:
void UserButtonGroup_idClicked(int id);
主窗口.cpp:
void MainWindow::UserButtonGroup_idClicked(int id) {
ui->label->setText("Button #" + QString::number(id) + " was clicked!");
}
void MainWindow::refresh_user_buttons() {
QButtonGroup UserButtonGroup(this);
for(int i = 0; i<20; ++i){
QPushButton* newButton = new QPushButton("Button " + QString::number(i));
newButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
ui->vl_users->addWidget(newButton);
UserButtonGroup.addButton(newButton, i);
}
connect(&UserButtonGroup, &QButtonGroup::idClicked, this, &MainWindow::UserButtonGroup_idClicked);
}
我已经尝试过(上面的除外):
2。
connect(&UserButtonGroup, SIGNAL(idClicked(int)), this, SLOT(UserButtonGroup_idClicked(int));
- 使用插槽名称:
on_UserButtonGroup_idClicked(int id)
按名称自动连接。
但它只是行不通。尝试方法 1 和 2 时,我不会收到任何错误或问题,但按钮不会做任何事情。当尝试按名称连接插槽时,它会给出错误“on_UserButtonGroup_idClicked(int) 没有匹配信号”。
我希望你能帮我解决这个问题,因为我的想法已经不多了。