Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108634
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 636
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-22 19:31
文章分类

全部博文(87)

文章存档

2015年(33)

2014年(37)

2013年(17)

我的朋友

分类: C/C++

2014-03-30 14:25:28

专题:QGroupBox 类的使用
QGroupBox 为构建分组框提供了支持。分组框通常带有一个边框和一个标题栏,作为容
器部件来使用,在其中可以布置各种窗口部件。分组框的标题通常在上方显示,其位置可以
设置为靠左、居中、靠右、自动调整这几种方式之一。位于分组框之中的窗口部件可以获得
应用程序的焦点。
位于分组框之内的窗口部件被称作是它的子窗口,通常使用addWidget()方法把子窗口
部件加入到分组框之中。
使用分组框的一般步骤如下:
⒈ 实例化分组框对象
使用QGroupBox 构造函数来实例化分组框对象,示例代码如下:
QGroupBox *groupBox = new QGroupBox(tr("Exclusive Radio Buttons"));
⒉ 创建位于分组框之中的子窗口部件
同样使用该窗口部件的构造函数来实现,示例代码如下:
QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
⒊ 创建一个布局
这个布局就是后面要设置在分组框之上的布局,Qt 提供的常见布局类型比如水平布
局、垂直布局、栅格布局、表单布局等都可以,目前还不支持分裂器布局。示例代码如下:
QVBoxLayout *vbox = new QVBoxLayout;
⒋ 把第2 步创建的子窗口部件加入到第3 步创建的布局之中
一般使用addWidget()或者insertWidget()方法把子窗口部件加入到布局之中。示例
代码如下:
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(radio1);
⒌ 把第3 步创建的布局应用到分组框上
最后,使用setLayout()方法把布局应用到分组框上,示例代码如下:
groupBox->setLayout(vbox);
注意,创建分组框及其内部的子窗口部件时,以上次序不要改变。当分组框内部没有
子窗口部件时,是无法为其应用布局的。再有就是,要牢固记得QGroupBox 是QWidget 的
子类,QWidget 的公有方法,它的对象都可以使用,它本身就是一个窗口部件。最后,一般
情况下,在应用程序中只要使用了分组框,就要为它应用一个布局,请读者朋友注意体会。
下面是一个示例程序片段,它演示了创建分组框并为其设置布局的过程。
QGroupBox *groupBox = new QGroupBox(tr("Exclusive Radio Buttons"));
QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));
radio1->setChecked(true);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(radio1);
vbox->addWidget(radio2);
vbox->addWidget(radio3);
vbox->addStretch(1);
阅读(711) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~