组件介绍
group box: 组合框,提供带有标题的组合框框架
Scroll area: 滚动区域
Tool box: 工具箱
Tab Widget: 标签小部件
Stacked Widget: 堆叠部件
Frame : 框架
Widget:小部件
MDI Area: MDI 区域
Dock Widget: 停靠窗体部件
QAxWidget: 封装Flash 的activeX的控件
其中很多在平时的工作中基本用不到,我这边就挑选几个常用的写一下用例了。
group box 用例:
#include "widget.h"
#include <QGroupBox>
#include <QVBoxLayout> //垂直布局
#include <QRadioButton>
#include <QGridLayout>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QGroupBox * box = new QGroupBox(this);
box->setTitle("组合框");
QVBoxLayout *lay = new QVBoxLayout();
QRadioButton *rbtn1 = new QRadioButton("rbtn1");
QRadioButton *rbtn2 = new QRadioButton("rbtn2");
QRadioButton *rbtn3 = new QRadioButton("rbtn3");
lay->addWidget(rbtn1);
lay->addWidget(rbtn2);
lay->addWidget(rbtn3);
box->setLayout(lay);
QGroupBox * box1 = new QGroupBox(this);
box1->setTitle("组合框2");
QVBoxLayout *lay1 = new QVBoxLayout();
QRadioButton *rbtn11 = new QRadioButton("rbtn1");
QRadioButton *rbtn21 = new QRadioButton("rbtn2");
QRadioButton *rbtn31 = new QRadioButton("rbtn3");
lay1->addWidget(rbtn11);
lay1->addWidget(rbtn21);
lay1->addWidget(rbtn31);
box1->setLayout(lay1);
QGridLayout *glay = new QGridLayout();
glay->addWidget(box, 0 ,0,1,1);
glay->addWidget(box1, 0 ,2,1,1);
this->setLayout(glay);
}
Widget::~Widget()
{
}
tab widget
在任务栏里显示添加的标签选项:
#include "widget.h"
#include <QGroupBox>
#include <QVBoxLayout> //垂直布局
#include <QRadioButton>
#include <QGridLayout>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
this->setWindowTitle("标签部件");
this->setGeometry(300,200,600,400);
tab_ui = new QTabWidget(this);
tab_ui->setGeometry(20,20,500,300);
tab_ui->show();
QWidget *w1 = new QWidget();
tab_ui->addTab(w1 , "进程");
QWidget *w2 = new QWidget();
tab_ui->addTab(w2 , "性能");
}
Widget::~Widget()
{
}
标签显示出来之后可以来回点击切换。
QDockWidget
QDockWidget 充当该 widget 的包装器。注意:调用这个函数之前必须为 widget 添加布局,否则它将不可见,而且如果此时 QDockWidget 已经可见了,那我们必须显式地 widget->show()
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDockWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QGridLayout>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QDockWidget *dwt = new QDockWidget("test" ,this);
QLabel *lab = new QLabel("标签1");
QLabel *lab1 = new QLabel("标签2");
QVBoxLayout *bx = new QVBoxLayout();
bx->addWidget(lab);
bx->addWidget(lab1);
QWidget *wdt = new QWidget();
wdt->setLayout(bx);
dwt->setWidget(wdt);
dwt->setMaximumSize(300,300);
}
MainWindow::~MainWindow()
{
delete ui;
}