Qt-QButtonGroup

1.包含头文件

#include <QButtonGroup>2.
  QButtonGroup *buttonGroup;
1   buttonGroup = new QButtonGroup();
2     buttonGroup->addButton (ui.noSpace_Btn, 0);
3     buttonGroup->addButton (ui.smallSpace_Btn, 1);
4     buttonGroup->addButton (ui.mediumSpace_Btn, 2);
5     buttonGroup->addButton (ui.bigSpace_Btn, 3);

3/可以手动指定一个id被选 中

1  QRadioButton *path = qobject_cast<QRadioButton*> (buttonGroup->button (mSelectRadioButton));
2     path->setChecked (true);
 connect (buttonGroup, SIGNAL (buttonClicked (int)), this, SLOT (buttonJudge (int)));
 quint16 a = buttonGroup->checkedId();

上面的基本功能应该可以实现了。

资料解析:

常用方法 

void QButtonGroup::addButton ( QAbstractButton * button )

Adds the given button to the end of the group‘s internal list of buttons. An id will be assigned to the button by this QButtonGroup. Automatically assigned ids are guaranteed to be negative, starting with -2. If you are also assigning your own ids, use positive values to avoid conflicts.

如果不手动指定id,会有默认的从-2开始,建议手动指定,可以初始化也可以分开

void QButtonGroup::setId ( QAbstractButton * button, int id )
Sets the id for the specified button. Note that id can not be -1.

可以让其它互斥,也可以设定

bool exclusive () const
void setExclusive ( bool )

也可以移除:

void QButtonGroup::removeButton ( QAbstractButton * button )
Removes the given button from the button group.

其它的参考帮助手册,常用的也就是这么多

信号也有很多,看自己的情况使用

void QButtonGroup::buttonClicked ( int id ) [signal]可以拿到id

void QButtonGroup::buttonClicked ( QAbstractButton * button ) [signal]可以拿手button

还有其它的

void buttonPressed ( QAbstractButton * button )
void buttonPressed ( int id )
void buttonReleased ( QAbstractButton * button )
void buttonReleased ( int id )

问题,我在里面放QPushButton时设定id会一直返回65535也就是-1,证明没有拿到checkid,后来自己按钮少就改用:

1  QPushButton *qtt =    qobject_cast<QPushButton*> (sender());
2
3     if ("strartStopAlarm_Btn" == qtt->objectName())
4     {
5         alarmTemp->StartStopTimer();
6     }

为了工作,先实现了功能 ,但感觉这不是好方法 ,看客如果有好方法,请回复我一下。

时间: 2024-08-23 10:10:51

Qt-QButtonGroup的相关文章

QT基础(一) ui类设计和使用

用designer设计的*.ui文件可以通过uic工具转换为*.h文件(在编译时也会自动生成这样一个ui_*.h文件),有了这个.h文件就可以直接按照纯C++的方式对其中的类进行调用.ui文件的使用就是利用默认工具uic自动产生一个类,然后用该类的setui函数加载界面到相应的对象上.       .ui文件的使用有三种形式:第一种是直接使用,第二种是定义一个新类,声明一个ui子对象,利用该对象来加载界面,第三种是将ui作为基类派生新的类. 借用一个例程分析如下: 工程及界面          

将vim作为QT开发的IDE

转载请注明链接与作者huihui1988 用了一段时间的vim,喜欢上了这种简洁高效的编辑器.恰逢正在学习QT中,于是将vim变成了开发QT的工具.以下是具体配置. 一.语法高亮支持: 1.打开VIMDIR/vim72/syntax/cpp.vim,加入 syn keyword cppStatement SLOT,SIGNAL syn keyword cppAccess slots,signals 2.增加QT的类型名: syn keyword cType ActiveQt Q3Accel Q3

[转]Qt中ui文件的使用

用designer设计的*.ui文件可以通过uic工具转换为*.h文件(在编译时也会自动生成这样一个ui_*.h文件),有了这个.h文件就可以直接按照纯C++的方式对其中的类进行调用.ui文件的使用就是利用默认工具uic自动产生一个类,然后用该类的setui函数加载界面到相应的对象上.       .ui文件的使用有三种形式:第一种是直接使用,第二种是定义一个新类,声明一个ui子对象,利用该对象来加载界面,第三种是将ui作为基类派生新的类. 借用一个例程分析如下: 工程及界面          

Qt中Ui名字空间以及setupUi函数的原理和实现

用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢,还是从main开始, [cpp] view plain copy #include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(ar

使用QtCreator创建Qt工程

前面一篇文章记录了Qt库文件和开发相关工具的编译,现在就来使用这些东东来写一实用的GUI. 一.使用QtCreator-V2.4.1创建工程: ①配置编译工具:Tools-->Options-->Build & Run -->QtVersion/Tool Chains ############################   添加之前编译生成的qmake,这个用来生成Makefile文件   ##########################################

QT开发(七)——QT按钮组件

QT开发(七)--QT按钮组件 QT中有六种按钮组件,分别是按压按钮QPushButton.工具按钮QToolButton.单选按钮QRadioButton.多选按钮QCheckBox.命令链接按钮QCommandLinkButton.按钮盒QButtonBox. 一.QPushButton组件 1.QPushButton组件简介 QPushButton组件用于接受用户点击事件,能够显示提示字符串,是功能性组件,需要父组件作为容器,能够在父组件中进行定位,用于执行命令或触发事件. QPushBu

QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)

QT中获取选中的radioButton的两种方法 QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioButton* pbtn = qobject_cast<QRadioButton*>(ui->BG->checkedButton()); 2 QString name = pbtn->objectName(); 3 if(!QString::compare(name, "rad

Qt程序设计

1.与STL对应Qt库有自己的容器类:QVector<T>.QList<T>.QLinkedList<T>.QStack<T>.QQueue<T>.QMap<K,T>.QHash<K,T>等Qt库的容器的基本操作与STL库基本相同,但是具体实现不同.对于元素的访问支持3种方式:(1)通过下标访问(2)通过迭代器访问(3)通过成员函数访问(比如value(idx)带越界检测的访问,at(idx)不带越界检查的访问)与STL库

qt中ui的 使用介绍

1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀.通常情况下ui是一个指向这个界面类的指针.ui-> 一般就是用来访问这个界面类里面的控件.例如你的ui文件里有一个叫okButton的QPushButton.你就可以这样来访问这个按钮ui->okButton. setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化, 它按照我们在Qt设计器里设计的样子把窗体画出来,把我们在Qt设计器里面定义的信号和槽建立起来. 也可以说,setupUi 是

qt ui界面控件布局设计

1.布局控件简介: 水平布局,里面的控件将水平展示,布局器里面的控件大小若没有固定,其大小将随着布局的大小而自动拉伸.可以通过设置其左(layoutLeftMargin).上(layoutTopMargin).右(layoutRightMargin).下边距(layoutBottomMargin)来调整里面控件相对于布局的边距,控件之间的宽度可以通过layoutSpacing属性进行设定.在Qt Designer里,可以先拖拽控件至窗口中,然后进行点击水平.垂直布局等实现布局,也可以先拖拽布局,