1、申明必要的部件(头文件)
2、将部件构造出来(构造函数)
3、必要的布局(构造函数)
4、前后台关联(构造函数)
connect(ck, SIGNAL(toggled(bool)), this, SLOT(showpass(bool)));
//利用信号去激发自定义的一个槽函数
5、美化
1、普通(QPushButton)
2、工具(QToolButton)
3、单选(QRadioButton)
4、复选(QCheckBox)
5、命令连接(QCommandLinkButton)
代码示例
在头文件中声明
#include
#include
#include
#include
#include
#include
class Widget : public QWidget
{
QPushButton *bt_button; //普通按钮
QToolButton *bt_tool; //工具按钮
QRadioButton *bt_radio; //单选按钮
QRadioButton *bt_radio1;//单选按钮
QCheckBox *bt_check; //复选按钮
QCheckBox *bt_check1; //复选按钮
QCommandLinkButton *bt_cmd;//命令按钮
}
/**********在.cpp中new出来************************/
bt_button = new QPushButton("普通按钮");
bt_tool = new QToolButton;
bt_tool->setText("工具按钮");
bt_radio = new QRadioButton("单选按钮");
bt_radio1 = new QRadioButton("单选按钮1");
bt_check = new QCheckBox("复选框");
bt_check1 = new QCheckBox("复选框1");
bt_cmd = new QCommandLinkButton("百度");
bt_cmd->setDescription("www.baidu.com");
1、水平(QHBoxLayout)
2、垂直(QVBoxLayout)
3、网格(QGridLayout)
1、标签(QPixmap)
文本标签,图片标签,动图标签
2、文本浏览器(QTextBrowser)
(.html超文本显示——网页)
3、日历(QCalendarWidget)
4、七段数码管(QLCDNumbe)
5、进度条 (QProgressBar)
1、行编辑框(QLineEdit)
2、组合框(下拉框)(QComboBox)
3、字体下拉框(QFontComboBox)
4、文本编辑框(QTextEdit)
5、自旋框(QSpinBox)
6、旋钮(QDial)
7、时间编辑框(QTimeEdit)
8、日期编辑框
9、滚动条(QScrollBar)
10、滑动杆(QSlider)
1、分组框(先布局管理在放入容器)(QGroupBox)
#include#include
#include "widget.h"
#include
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
lb[0] = new QLabel("题目1 safasfasfasdf");
rb[0] = new QRadioButton("aaaaa");
rb[1] = new QRadioButton("bbbbb");
rb[2] = new QRadioButton("ccccc");
QVBoxLayout *vbox1 = new QVBoxLayout;
vbox1->addWidget(lb[0]);
vbox1->addWidget(rb[0]);
vbox1->addWidget(rb[1]);
vbox1->addWidget(rb[2]);
g1 = new QGroupBox("AAAA"); //带边框显示和注释的容器
g1->setLayout(vbox1);
///
lb[1] = new QLabel("题目2 dhjdfdjdjfdjdfdjjjjfd");
rb[3] = new QRadioButton("xxxxx");
rb[4] = new QRadioButton("yyyyy");
rb[5] = new QRadioButton("zzzzz");
QVBoxLayout *vbox2 = new QVBoxLayout;
vbox2->addWidget(lb[1]);
vbox2->addWidget(rb[3]);
vbox2->addWidget(rb[4]);
vbox2->addWidget(rb[5]);
g2 = new QGroupBox("BBBB"); //带边框显示和注释的容器
g2->setLayout(vbox2);
QVBoxLayout *vbox3 = new QVBoxLayout;
vbox3->addWidget(g1);
vbox3->addWidget(g2);
setLayout(vbox3);
}
Widget::~Widget()
{
}
2、栈式窗口容器(QStackedWidget)
#include "widget.h"
#include
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
t1 = new QTextEdit("aaaaaaaaaaaaa");
t2 = new QTextEdit("bbbbbbbbbbbbbbb");
box = new QStackedWidget; //构造一个栈容器
box->addWidget(t1); //插入一个新标签
box->addWidget(t2); //插入一个新标签
//测试
cb = new QComboBox;
cb->addItem("文本1");
cb->addItem("文本2");
connect(cb, SIGNAL(activated(int)), box, SLOT(setCurrentIndex(int)));
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(cb);
vbox->addWidget(box);
setLayout(vbox);
}
Widget::~Widget()
{
}
3、滚动窗口(QScrollArea)
#include "widget.h"
#include
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
lb = new QLabel;
lb->setPixmap(QPixmap("D:\\QT1\\Qt\\1.webp"));//图片路径
lb->setScaledContents(true); //自动缩放显示
//lb->setParent(this);
ar = new QScrollArea; //滚动窗口容器
ar->setWidget(lb); //把标签放入容器
//ar->setParent(this);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(ar);
setLayout(vbox);
}
Widget::~Widget()
{
}
效果图
4、工具箱容器(QToolBox)
#include "widget.h"
#include
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
t1 = new QTextEdit("aaaaaaaaaaaaa");
t2 = new QTextEdit("bbbbbbbbbbbbbbb");
// QVBoxLayout *vbox = new QVBoxLayout;
// vbox->addWidget(t1);
// vbox->addWidget(t2);
// setLayout(vbox);
box = new QToolBox; //构造一个工具箱容器
box->addItem(t1, "aaaaa"); //将文本编辑框装入工具箱
box->addItem(t2, "bbbbb"); //将文本编辑框装入工具箱
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(box);
setLayout(vbox);
}
Widget::~Widget()
{
}
5、制表容器 (QTabWidget)
#include "widget.h"
#include
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
t1 = new QTextEdit("aaaaaaaaaaaaa");
t2 = new QTextEdit("bbbbbbbbbbbbbbb");
box = new QTabWidget; //构造一个制表容器
box->setTabsClosable(true);//显示关闭的按钮
box->addTab(t1, "aaaa"); //插入一个新标签
box->addTab(t2, "bbbb"); //插入一个新标签
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(box);
setLayout(vbox);
connect(box, SIGNAL(tabCloseRequested(int)), this, SLOT(close_tab(int)));
}
Widget::~Widget()
{
}