首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Qt)从PushButtons的QButtonGroup创建信号?

(Qt)从PushButtons的QButtonGroup创建信号?
EN

Stack Overflow用户
提问于 2013-07-15 14:15:14
回答 2查看 8.6K关注 0票数 1

我对这整件事是怎么运作的感到很困惑。

我把一些按钮放在这样的组中:

代码语言:javascript
复制
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。(如果我解释得不好,很抱歉:( )

所以这就是我所做的(谷歌搜索后的纯猜测)

代码语言:javascript
复制
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是非法使用等等。

我讨厌说,我只使用了设计器窗口中的信号/插槽,所以我真的只需要这一件东西,然后我就为未来做好了准备。:)

耽误您时间,实在对不起。:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-15 14:29:34

尝试以下操作:

代码语言:javascript
复制
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。

票数 2
EN

Stack Overflow用户

发布于 2013-07-15 14:29:44

首先,您需要包含QButtonGroup。

代码语言:javascript
复制
#include <QButtonGroup>

您的连接格式不正确,请先将"group“指针保存为类成员,然后使用以下方法:

代码语言:javascript
复制
connect(group, SIGNAL(buttonClicked(int)), this, SLOT(onGroupButtonClicked(int)));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17647823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档