[英](Qt) Create signal from QButtonGroup of PushButtons?
我对这件事情如何运作感到困惑。
我有一些按钮,我把它放到这样一个组中:
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是非法使用等。
我不想说我只使用了设计师窗口中的信号/插槽,所以我真的只需要这一件事,然后我就会为未来做好准备。 :)
谢谢你的时间。 :)
请尝试以下方法:
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。
首先,您需要包含QButtonGroup。
#include <QButtonGroup>
您的连接格式不正确,请先将“group”指针保存为类成员,然后使用以下命令:
connect(group, SIGNAL(buttonClicked(int)), this, SLOT(onGroupButtonClicked(int)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.