[英](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.