QT常用GUI类库(基础代码)

QT常用GUI类库

  • 一. 介绍
  • 二. 布局管理器
    • 1. 绝对布局
    • 2. 自动布局
      • 2.1 水平
      • 2.2 垂直
      • 2.3 栅格
      • 2.4 布局嵌套
  • 三. 按钮
    • 1. 普通按钮
    • 2. 工具按钮
    • 3. 单选按钮
    • 4.多选按钮
    • 5. 命令按钮
  • 四. 输入部件
    • 1. 标签
      • 1.1 文字标签
      • 1.2 图片标签
      • 1.3 动画标签
    • 2. 文本浏览器
    • 3. 进度条
    • 4. 仿七段数码管
    • 5. 日历窗口
  • 五. 输出部件
    • 1. 行编辑框
    • 2. 文本编辑框
    • 3. 下拉框
      • 3.1 普通下拉框
      • 3.2 字体下拉框
    • 4. 自旋框
    • 5. 旋钮
    • 6. 滚动条
    • 7. 滑动杆儿

一. 介绍

在QT中有很多供我们使用的类,我在这里给大家列举了我们常用的类,一下讲解全部采用写代码的方式展示给大家,每个模块的效果图会放在代码之前,供大家参考选择

二. 布局管理器

1. 绝对布局

将位置固定在某一个位置
#include      //按钮所需头文件

QT常用GUI类库(基础代码)_第1张图片

    bt1 = new QPushButton("1", this);
    bt2 = new QPushButton("2", this);
    bt3 = new QPushButton("3", this);

    //设置按钮的位置  x:起始位置的x值 y:起始位置的y值 w:宽 h:高
    //bt1->setGeometry(int x,int y, int w, int h);
    bt1->setGeometry(100, 100, 200, 20);
    bt2->setGeometry(200, 200, 200, 20);
    bt3->setGeometry(100,100,200,20);
    bt3->move(20, 20);  //移动到对应坐标位置

2. 自动布局

2.1 水平

将三个按钮水平布局      

在这里插入图片描述

	#include        //头文件
	
    bt1 = new QPushButton("1", this);
    bt2 = new QPushButton("2", this);
    bt3 = new QPushButton("3", this);

    //1. 水平
    QHBoxLayout *hbox = new QHBoxLayout; //构造一个水平管理器
    //将按钮按顺序加入水平管理器
    hbox->addWidget(bt1);
    hbox->addWidget(bt2);
    hbox->addWidget(bt3);
    this->setLayout(hbox);  //将布局贴在当前界面上

2.2 垂直

将三个按钮垂直布局

QT常用GUI类库(基础代码)_第2张图片

	#include 
	
    bt1 = new QPushButton("1", this);
    bt2 = new QPushButton("2", this);
    bt3 = new QPushButton("3", this);

    //2. 垂直
    QVBoxLayout *vbox = new QVBoxLayout; //构造一个水平管理器
    //将按钮按顺序加入垂直管理器
    vbox->addWidget(bt1);
    vbox->addWidget(bt2);
    vbox->addWidget(bt3);
    this->setLayout(vbox);  //将布局贴在当前界面上

2.3 栅格

类似二维数组,网格形状

QT常用GUI类库(基础代码)_第3张图片

	#include 
	
    bt1 = new QPushButton("1", this);
    bt2 = new QPushButton("2", this);
    bt3 = new QPushButton("3", this);
    bt4 = new QPushButton("4", this);


    //3. 栅格
    QGridLayout *gbox = new QGridLayout; //构造一个水平管理器
    //将按钮按顺序加入垂直管理器

    gbox->addWidget(bt1, 0, 0);   // 0行0列
    gbox->addWidget(bt2, 1, 1,3,2);
    gbox->addWidget(bt3, 1, 2, 2, 1);   //1行2列,占2行,占1列
    gbox->addWidget(bt4,3,3);
    bt3->setFixedHeight(50);
    this->setLayout(gbox);  //将布局贴在当前界面上

2.4 布局嵌套

QT常用GUI类库(基础代码)_第4张图片

    bt1 = new QPushButton("1", this);
    bt2 = new QPushButton("2", this);
    bt3 = new QPushButton("3", this);
    bt4 = new QPushButton("4", this);

    //4. 布局嵌套
    QHBoxLayout *hbox = new QHBoxLayout;   //3 4 水平布局
    hbox->addWidget(bt3);
    hbox->addStretch(); //加弹簧
    hbox->addWidget(bt4);
    QVBoxLayout *vbox = new QVBoxLayout;   //1 2 (3 4) 垂直布局
    vbox->addWidget(bt1);
    vbox->addWidget(bt2);
    vbox->addLayout(hbox);
    setLayout(vbox);

三. 按钮

1. 普通按钮

QT常用GUI类库(基础代码)_第5张图片

	#include    //头文件

    /*普通按钮*/
    pb = new QPushButton("普通按钮");
    pb->setText("你好");                      //设置按钮文字
    pb->setIconSize(QSize(100, 100));        //设置图标大小
    pb->setIcon(QIcon(":/hello.jpg"));       //设置图标
    pb->setMinimumSize(100, 100);            //设置最小大小
    pb->setMaximumSize(200, 200);            //设置最大大小

2. 工具按钮

类似Qt Creator右下角的运行代码按钮

QT常用GUI类库(基础代码)_第6张图片

	#include      //头文件

    /*工具按钮*/
    tb = new QToolButton;
    tb->setText("工具按钮");
    tb->setIcon(QIcon(":/icon/播放.png"));   //设置图标

3. 单选按钮

只能选择其中一个选项

在这里插入图片描述

	#include     //头文件

    /*单选按钮*/
    rb = new QRadioButton("A");
    rb1 = new QRadioButton("B");

4.多选按钮

可以同时选择多个选项

QT常用GUI类库(基础代码)_第7张图片

	#include 
	
    /*复选按钮*/
    cb = new QCheckBox("A");
    cb1 = new QCheckBox("B");
    cb2 = new QCheckBox("C");

5. 命令按钮

按钮链接到其他软件

QT常用GUI类库(基础代码)_第8张图片

	#include 

    /*命令按钮*/
    cmdb = new QCommandLinkButton("启动计算器");
    connect(cmdb, &QCommandLinkButton::clicked, [&](){
        QProcess *p = new QProcess;
        p->execute("calc");
    });

四. 输入部件

1. 标签

1.1 文字标签

固定显示内容,没有按钮效果
在这里插入图片描述

	#include    //头文件
	
    //文字标签
    lb_text = new QLabel("我是一个文字标签");
    lb_text->setAlignment(Qt::AlignCenter); //设置对齐方式

1.2 图片标签

固定显示图片

QT常用GUI类库(基础代码)_第9张图片

	#include    //头文件
		
    //图片
    lb_pix = new QLabel;
    lb_pix->setMaximumSize(100, 100);       //设置最大大小
    lb_pix->setScaledContents(true);        //设置自动缩放显示
    lb_pix->setPixmap(QPixmap("C:\\Users\\26640\\Pictures\\Saved Pictures\\hello.jpg"));

1.3 动画标签

可以讲gif动图设置成动画标签,让label动起来

QT常用GUI类库(基础代码)_第10张图片

	#include    //头文件
	#include 

    //动画
    lb_gif = new QLabel;
    lb_gif->setMaximumSize(200, 100);
    lb_gif->setScaledContents(true);          //设置自动缩放显示
    QMovie *m = new QMovie("D:\\ikun.gif");   //读取动图,存放到一个电影类中
    m->start();                               //播放电影
    lb_gif->setMovie(m);                      //标签设置该电影类

2. 文本浏览器

可以识别 html 语法

QT常用GUI类库(基础代码)_第11张图片

	#include 
	
    /* 文本浏览器 */
    tb = new QTextBrowser;
    tb->setText("\
                \
                \
                \
                菜鸟教程(runoob.com)\
                \
                \
                

我的第一个标题

\

我的第一个段落。

\ \ "
);

3. 进度条

类似下载进度条,如果设置定时器,可以实现让进度条每一秒加1

在这里插入图片描述

	#include 
	#include 
	
	/* 进度条*/
    pbr =  new QProgressBar;
    pbr->setRange(0, 100);     //设置进度条范围
    pbr->setValue(36);

    QTimer *t = new QTimer;
    connect(t, &QTimer::timeout, [&](){     //lambda表达式
        static int x = 0;
        pbr->setValue(x);                   //设置进度条数值Value
        x++;
    });
    t->start(1000);                         //1000毫秒,一秒触发一次
	

4. 仿七段数码管

QT常用GUI类库(基础代码)_第12张图片

	#include 
	#include 

    /* 仿七段数码管 */
    lcd = new QLCDNumber;
    lcd->setMinimumHeight(100);
    lcd->setDigitCount(20);

    QTimer *t = new QTimer;
    connect(t, &QTimer::timeout, [&](){     //lambda表达式
        static int x = 0;
        lcd->display(x);                   //设置数码管数值
        x++;
    });
    t->start(1000);                         //1000毫秒,一秒触发一次

5. 日历窗口

上面是一个七段数码管,实现点击日历中的日期,并在数码管中显示

QT常用GUI类库(基础代码)_第13张图片

	#include 
	#include 
	
    /* 仿七段数码管 */
    lcd = new QLCDNumber;
    lcd->setMinimumHeight(100);
    lcd->setDigitCount(20);

    /* 日历窗口*/
    cd = new QCalendarWidget;
    connect(cd, &QCalendarWidget::clicked, [&](QDate d){
        lcd->display(d.toString("yyyy-MM-dd"));
    });

五. 输出部件

1. 行编辑框

类似登录时输入账号,密码这类输入框

在这里插入图片描述

  	#include 
  	
    /*行编辑框*/
    lineedit = new QLineEdit;
    lineedit->setPlaceholderText("密码");        //设置提示
    lineedit->setEchoMode(QLineEdit::Password); //设置回显模式

2. 文本编辑框

QT常用GUI类库(基础代码)_第14张图片

	#include 
	
	/* 文本编辑框 */
    textedit = new QTextEdit;
    textedit->setText("");        //设置文本框中的内容
    textedit->toPlainText();      //获取文本框中的内容

3. 下拉框

3.1 普通下拉框

下拉框可以选择其他一个,这里实现选择下拉框中的内容,追加显示到文本编辑框中

QT常用GUI类库(基础代码)_第15张图片

	#include 
	#include 
	
	/* 文本编辑框 */
    textedit = new QTextEdit;
    textedit->setText("");        //设置文本框中的内容
    textedit->toPlainText();      //获取文本框中的内容

    /* 下拉框 */
    combobox = new QComboBox;
    combobox->addItem("成都");
    combobox->addItem("北京");
    combobox->addItem("上海");
    connect(combobox, SIGNAL(activated(QString)), textedit, SLOT(append(QString)));

3.2 字体下拉框

选择文本编辑框中的内容,再选择字体

QT常用GUI类库(基础代码)_第16张图片

	#include 
	#include 

    /* 文本编辑框 */
    textedit = new QTextEdit;
    textedit->setText("哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈");        //设置文本框中的内容
    textedit->toPlainText();      //获取文本框中的内容

    /* 字体下拉框*/
    fontcombobox = new QFontComboBox;
    connect(fontcombobox, SIGNAL(currentFontChanged(QFont)), textedit, SLOT(setCurrentFont(QFont)));

4. 自旋框

将自旋框中的内容打印到文本编辑框中,可以上下实现增减

QT常用GUI类库(基础代码)_第17张图片

	#include 
	#include 
	
	/* 文本编辑框 */
    textedit = new QTextEdit;
    textedit->setText("");        //设置文本框中的内容
    textedit->toPlainText();      //获取文本框中的内容

    /* 自旋框 */
    spinbox = new QSpinBox;
    connect(spinbox, SIGNAL(valueChanged(QString)), textedit, SLOT(append(QString)));

5. 旋钮

旋动旋钮,进度条随着旋钮变化

QT常用GUI类库(基础代码)_第18张图片

	#include 
	#include 
	
	/* 进度条*/
    pbr =  new QProgressBar;
    pbr->setRange(0, 100);     //设置进度条范围

    /* 旋钮 */
    dial = new QDial;
    connect(dial, SIGNAL(valueChanged(int)), pbr, SLOT(setValue(int)));

6. 滚动条

实现拖动滚动条,进度条也随之变化

在这里插入图片描述

	#include 
	#include 

	/* 进度条*/
    pbr =  new QProgressBar;
    pbr->setRange(0, 100);     //设置进度条范围

    /* 滚动条 */
    scrollbar = new QScrollBar;
    scrollbar->setOrientation(Qt::Horizontal); //放置方式 水平?垂直
    connect(scrollbar, SIGNAL(valueChanged(int)), pbr, SLOT(setValue(int)));

7. 滑动杆儿

拖动滑动杆,进度条随之变化

在这里插入图片描述

	#include 
	#include 

	/* 进度条*/
    pbr =  new QProgressBar;
    pbr->setRange(0, 100);     //设置进度条范围

    /* 滑动杆儿 */
    slider = new QSlider;
    slider->setOrientation(Qt::Horizontal); //放置方式 水平?垂直
    connect(slider, SIGNAL(valueChanged(int)), pbr, SLOT(setValue(int)));

你可能感兴趣的:(QT,qt,开发语言)