簡體   English   中英

(Qt)從QButtonGroup的PushButton創建信號?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM