这章主要开始介绍QT中的容器组件。
今日分享:✨希望我们按计划做事,不拖延,任何时间段都有好一点的效率✨!
QT中有九种容器组件,分别是组合框QGroupBox
、滚动区QScrollArea
、工具箱QToolBox
、选项卡QTabWidget
、控件栈QWidgetStack
、框架QFrame
、组件QWidget
、MDI
窗口显示区QMdiArea
、停靠窗口QDockWidget
。
QT开发学习-第五章-QT容器组件
一、QGroupBox分组框
1.1. QGroupBox组件简介
QGroupBox
为构建分组框提供了支持。
分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。
分组框的标题通常在上方显示,其位置可以设置为靠左、居中、靠右、自动调整这几种方式之一。
位于分组框之中的窗口部件可以获得应用程序的焦点,位于分组框之内的窗口部件是分组框的子窗口,通常使用addWidget()
方法把子窗口部件加入到分组框之中。
1.2. QGroupBox组件属性
QGroupBox组件属性设置选项:
A、name:组件对应源代码中的名称
B、title:组件对应图形界面中所显示的名称
C、font:设置title的字体
1.3. QGroupBox分组框成员函数
void setChecked (bool checked) //设置QGroupBox使能
void setTitle (const QString & title) //设置组合框的标题文本
1.4. QGroupBox实例
#include <QtGui/QApplication>
#include <QDialog>
#include <QVBoxLayout>
#include <QGroupBox>
#include <QRadioButton>
#include <QCheckBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog w;
QGroupBox *group = new QGroupBox("option");
group->setCheckable(true);
group->setChecked(true);
QRadioButton *radio1 = new QRadioButton("banana");
QRadioButton *radio2 = new QRadioButton("pear");
QRadioButton *radio3 = new QRadioButton("apple");
radio1->setChecked(true);
QCheckBox *check = new QCheckBox("rice");
check->setChecked(true);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(radio1);
vbox->addWidget(radio2);
vbox->addWidget(radio3);
vbox->addWidget(check);
group->setLayout(vbox);
w.setLayout(vbox);
w.show();
return a.exec();
}
二、QScrollArea滚动区
2.1. QScrollArea组件简介
QScrollArea滚动区组件用来显示子控件的内容的框架,
如果子控件的尺寸超过了框架的大小,可以使用滚动条,方便查看整个子控件。
QScrollArea 可以给任何QWidget添加滚动条,
但一般自定义窗体添加滚动条不显示。
2.2. QScrollArea组件属性
QScrollArea
组件属性设置选项:
A、name:同上
B、font:设置文本框的字体
2.3. QScrollArea组件常用成员函数
QScrollArea::QScrollArea(QWidget *parent = 0)
//构造一个父对象为parent的ScrollArea
void QScrollArea::setWidget(QWidget *widget)
//设置控件widget为QScrollArea组件的子控件
QWidget *SCrollArea::takeWidget()
//删除QScrollArea的子控件
QWidget *QScrollArea::widget()const
//返回QScrollArea的子控件
2.4. QScrollArea实例
#include <QtGui/QApplication>
#include <QLabel>
#include <QImage>
#include <QScrollArea>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QLabel *label = new QLabel(&w);
QImage image("D:\\QT\\ScrollArea\\1.jpg");
QHBoxLayout *lay=new QHBoxLayout(&w);
label->setPixmap(QPixmap::fromImage(image));
//创建滚动区,
QScrollArea *scrollarea = new QScrollArea(&w);
//将Widget组件加入滚动区
scrollarea->setWidget(label);
//自动改变滚动区大小
scrollarea->setWidgetResizable(1);
//设置滚动区背景颜色
scrollarea->setBackgroundRole(QPalette::Dark);
lay->addWidget(scrollarea);
w.setLayout(lay);
w.show();
return a.exec();
}
三、QToolBox工具箱
3.1. QToolBox组件简介
QToolBox
提供了一系列的页和隔间,就像Qt Creator中的工具箱一样。
3.2. QToolBox组件属性
QToolBox
组件属性设置选项
A、name:同上
B、font:同上
C、currentIndex:当前活动页的索引
D、itemLabel:当前活动页的标签
E、itemName:当前活动页的名称
F、itemBackgroundModel:当前活动页的背景模式
3.3. QToolBox组件常用成员函数
QToolBox::QToolBox(QWidget *parent = 0,const char *name = 0,QFlags f = 0)
// 构造一个名称为name,父对象为parent和标志位f的ToolBox
int addItem(QWidget *item,const QIconSet &iconSet,const QString &label)
// 增加一个item到ToolBox的底部,新增加的item的标签的文本是label,标签的图标是iconSet
int addItem(QWidget *item,const QString &label)
// 增加一个item到ToolBox底部,新增加的item的标签文本是label
int ToolBox::count()const
// 返回工具箱中item数目
int ToolBox::currentIndex()const
// 返回当前活动item的索引
QWidget *QToolBox::currentItem()const
// 返回当前活动item,如果该ToolBox为空,返回0
int ToolBox::indexof(QWidget *item)const
// 返回item的索引
int QToolBox::insertItem(int index,QWidget *item,const QIconSet &iconSet,const QString &label)
// 在索引index处插入一个新的项目,项目是item,标签图标是iconSet,标签文本时label,返回插入item的索引
int QToolBox::insertItem(int index,QWidget *item,const QString &label)
// 在索引index处插入一个新的项目,项目的名称是item,标签文本是label,返回插入item的索引。
QWidget *QToolBox::item(int index)const
// 返回索引为index位置的item
QString QToolBox::itemLabel(int index)const
// 返回索引为index位置的标签
int QToolBox::RemoveItem(QWidget *item)
// 删除ToolBox中的item的项目,删除成功后返回item的索引,否则返回-1
void QToolBox::setCurrentIndex(int index)
// 设置索引为index位置的项目为当前活动项目
void