我对这整件事如何运作感到困惑。
我有一些按钮,我把它放到这样一个组中:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
AddSlotsToGroup();
}
void MainWindow::AddSlotsToGroup()
{
QButtonGroup* group = new QButtonGroup(this);
group->addButton(ui->slot_0);
group->addButton(ui->slot_1);
//...
}
我想创建一个插槽,获取该组中单击的按钮的ID。 (对不起,如果我解释得很差:()
所以这就是我所做的(谷歌搜索后的纯粹猜测)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
AddSlotsToGroup();
connect(QPushButton* group, SIGNAL(buttonClicked(int)), this, SLOT(onGroupButtonClicked(int)));
}
void MainWindow::onGroupButtonClicked(int id)
{
qDebug() << id;
}
毫不奇怪,我收到一个错误,说组是未声明的标识符,而QPushButton是非法使用等。
我不想说我只使用了设计师窗口中的信号/插槽,所以我真的只需要这一件事,然后我就会为未来做好准备。 :)
感谢您的时间。 :)
答案 0 :(得分:2)
尝试以下方法:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
AddSlotsToGroup();
}
void MainWindow::AddSlotsToGroup()
{
QButtonGroup* group = new QButtonGroup(this);
group->addButton(ui->slot_0);
group->addButton(ui->slot_1);
//...
connect(group, SIGNAL(buttonClicked(int)),
this, SLOT(onGroupButtonClicked(int)));
}
顺便说一下,你需要先学习C ++才能掌握Qt。
答案 1 :(得分:2)
首先,您需要包含QButtonGroup。
#include <QButtonGroup>
您的连接格式不正确,请先将“group”指针保存为类成员,然后使用以下命令:
connect(group, SIGNAL(buttonClicked(int)), this, SLOT(onGroupButtonClicked(int)));