day2 QT按钮与容器
目录
按钮
1、QPushButton
2、QToolButton
3、QRadioButton
4、QCheckBox
示例
容器
编辑
1. QGroupBox(分组框)
2. QScrollArea(滚动区域)
3. QToolBox(工具箱)
4. QTabWidget(选项卡控件)
5. QStackedWidget(堆叠控件)
6. QFrame(框架控件)
7. QWidget(窗口部件)
8. QMdiArea(多文档界面区域)
9. QDockWidget(停靠控件)
按钮
1、QPushButton
- QPushButton是一个普通的按钮类,用于创建常规按钮。
- 可以设置按钮的文本、图标、样式等属性,并与点击事件相关联。
2、QToolButton
- QToolButton是一个工具按钮类,用于创建带有图标或文本的工具按钮。
- 与QPushButton不同的是,QToolButton通常用于工具栏或工具箱中,可以包含下拉菜单、快捷方式等功能。
3、QRadioButton
- QRadioButton是一个单选按钮类,用于创建一组互斥的选项。
- 当选择一个单选按钮时,其他单选按钮将自动取消选择。
- 可以通过将单选按钮放在QButtonGroup中来建立同一组的单选按钮。
4、QCheckBox
- QCheckBox是一个复选框类,用于创建可以选择或取消选择的项目。
- 与QRadioButton不同的是,QCheckBox不互斥,可以同时选择多个复选框。
示例
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>#include <QLineEdit>
#include <QPushButton>
#include <QCheckBox>#include <QWidget>class Widget : public QWidget
{Q_OBJECT
public slots:void setpass(bool flag){if(!flag)le->setEchoMode(QLineEdit::Password);elsele->setEchoMode(QLineEdit::Normal);}public:Widget(QWidget *parent = 0);~Widget();private:QLineEdit *le;QCheckBox *ck;QPushButton *pb;
};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{le = new QLineEdit;//le->setEchoMode(QLineEdit::Password);ck = new QCheckBox("show passwd");pb = new QPushButton("clear");QVBoxLayout *vbox = new QVBoxLayout;vbox->addWidget(le);vbox->addWidget(ck);vbox->addWidget(pb);this->setLayout(vbox);connect(pb, SIGNAL(clicked(bool)), le, SLOT(clear()));connect(ck, SIGNAL(clicked(bool)), this, SLOT(setpass(bool)));}Widget::~Widget()
{}
容器
1. QGroupBox(分组框)
- QGroupBox是用于在界面上创建一个带有标题的分组框。
- 它可以用于将相关的控件或选项分组显示,提高用户界面的可读性和可理解性。
2. QScrollArea(滚动区域)
- QScrollArea提供一个滚动视图用于显示比可见区域更大的内容。
- 可以将需要滚动显示的控件放置在QScrollArea内部,使用户可以通过滚动来查看全部内容。
3. QToolBox(工具箱)
- QToolBox是一个可以包含多个部件或选项卡的容器控件。
- 它以堆叠的方式显示多个部件,并提供一个选项卡或树状结构来切换不同的部件。
4. QTabWidget(选项卡控件)
- QTabWidget是一个包含多个选项卡的容器控件。
- 每个选项卡可以关联一个窗口部件,通过切换选项卡可以显示不同的内容。
5. QStackedWidget(堆叠控件)
- QStackedWidget是一个堆叠式的容器控件,用于存储和切换多个部件。
- 每个部件被堆叠在一起,只显示当前选中的部件,其他部件隐藏。
6. QFrame(框架控件)
- QFrame是一个基础的可视控件类,用于创建具有框架样式的矩形区域。
- 它可以用于容纳其他控件,也可以显示边框、阴影等装饰效果。
7. QWidget(窗口部件)
- QWidget是Qt中所有可视化控件的基类,也可以作为容器控件使用。
- 它提供了绘图、事件处理和布局管理等功能,可用于构建应用程序的用户界面。
8. QMdiArea(多文档界面区域)
- QMdiArea是一个多文档界面容器,用于显示和管理多个子窗口。
- 它提供了窗口的布局、切换、激活等功能,适用于创建MDI风格的应用程序。
9. QDockWidget(停靠控件)
- QDockWidget是一个可停靠的容器控件,用于在主窗口中创建可拖拽和停靠的部件。
- 它可以将各种部件、工具栏等放置在主窗口的边缘位置。
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QToolBox>
#include <QPushButton>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();private:QToolBox *tb;QPushButton *pb[3];
};#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{tb = new QToolBox;pb[0] = new QPushButton("aaa");pb[1] = new QPushButton("bbb");pb[2] = new QPushButton("ccc");tb->addItem(pb[0], "1111");tb->addItem(pb[1], "2222");tb->addItem(pb[2], "3333");QVBoxLayout *mainbox = new QVBoxLayout;mainbox->addWidget(tb);this->setLayout(mainbox);
}Widget::~Widget()
{}