热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QtQButtonGroup

环境:Windows7x64,VS2017,Qt5.12.6实现效果:如下图,创建一个QButtonGroup,里面包含3个QPushBu

环境:Windows7 x64, VS2017, Qt5.12.6



实现效果:如下图,创建一个QButtonGroup,里面包含3个 QPushButton 单选。



代码:

MyAbstractButton.hpp

#pragma once#include
#include
#include
#include class MyAbstractButton : public QMainWindow
{Q_OBJECTpublic:MyAbstractButton(QWidget *parent = Q_NULLPTR);public slots:void onButtonClicked(QAbstractButton *button);private:
};

MyAbstractButton.cpp

#include
#include
#include
#include "MyAbstractButton.hpp"
#include "Utils.hpp"MyAbstractButton::MyAbstractButton(QWidget *parent): QMainWindow(parent)
{this->setFixedSize(300, 200);this->setStyleSheet(Utils::getStyleSheet());QButtonGroup* pButtonGroup &#61; new QButtonGroup(this);pButtonGroup->setExclusive(true); //按钮间互斥选中&#xff0c;也就是说同时只能有一个被选中状态int xpos &#61; 30;int ypos &#61; 30;for (int i &#61; 0; i <3; &#43;&#43;i){QAbstractButton* pButton &#61; new QPushButton(this);pButton->setGeometry(xpos, ypos, 100, 30); //必须设置Button位置&#xff0c;不然空间就会叠加在一起pButton->setCheckable(true);pButton->setText(QString("Click Me %1").arg(i &#43; 1));pButtonGroup->addButton(pButton);pButtonGroup->setId(pButton, i);ypos &#43;&#61; 40;}connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
}void MyAbstractButton::onButtonClicked(QAbstractButton *button)
{qDebug() <<"Clicked Button : " <text();
}


注意事项&#xff1a;
1. 创建多个 QPushButton时&#xff0c;一定要设置几何位置

2. 一定要检查信号槽函数是否有效&#xff0c;尤其是带参函数


推荐阅读
author-avatar
勇敢的无心睡眠888
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有