当前位置: 首页 > article >正文

QT学习(四)——常用控件

4.1 文字控件:Label

记得添加头文件:#include <QLabel>

在这里插入图片描述
运行结果:
在这里插入图片描述
这里也可以进行有参的构造:
在这里插入图片描述

运行结果:
在这里插入图片描述

4.2 滑动条:QSlider

用之前记得包含头文件:#include <QSlider>
在这里插入图片描述
运行结果:
在这里插入图片描述

案例1:用QSlider滑动条控制Label的字体大小

在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述

4.3 进度条:QProgressBar

记得包含头文件:#include <QProgressBar>
在这里插入图片描述
运行结果:
在这里插入图片描述

案例2:利用QSlider滑动条来控制QProgressBar进度条

在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述

4.4 文本编辑框:QTextEdit

添加头文件:#include <QTextEdit>
在这里插入图片描述
运行结果:
在这里插入图片描述
可以给文本框设置内容:
在这里插入图片描述
注意:qreal( )就是一个 double( )

运行结果如下:
在这里插入图片描述

案例3:通过文本编辑框QTextEdit,改变文本Label的内容

在这里插入图片描述
信号函数:textChanged()用表示文本框内容发生了变化
在这里插入图片描述
函数:toPlainText( )用来表示获取文本框的内容,返回QString类型
在这里插入图片描述
运行结果:
在这里插入图片描述

4.5 补充:老版本的信号和槽绑定方式

在这里插入图片描述
运行结果:
在这里插入图片描述
点击按钮后:
在这里插入图片描述

4.6 完整示例代码

widget.cpp

#include "widget.h"
#include <QLabel>
#include <QSlider>
#include <QProgressBar>
#include <QTextEdit>
#include <QPushButton>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    // ---------------- 常用控件

    // 1.文字控件
    // 无参构造
    QLabel* laber = new QLabel;
    laber->setParent(this);
    laber->move(0,0);
    laber->setText("今天天气如何");
    laber->setFont(QFont("楷体", 20, 10, 1)); // 字体、大小、加粗、倾斜

    // 有参构造
    QLabel* laber2 = new QLabel("hello", this);
    laber2->move(0, 100);

    // ---------------------------------//
    // 2.滑动条
    QSlider* slider = new QSlider;
    slider->setParent(this);
    slider->move(50, 150);
    slider->setValue(0); // 设定滑动条初始值为0
    slider->setMaximum(100); // 设定滑动条最大值为100(原始最大值是99)

    // 通过滑动 滑动条改变文字控件的字体大小
    // 这里通过 valueChanged 可以获取滑动条的值,将其值传入到Lambda表达式
    connect(slider, &QSlider::valueChanged, [laber2](int _value)->void{
        laber2->setFont(QFont("楷体", _value, 10, 1));
        laber2->resize(10*_value, 10*_value);
    });

    // ---------------------------------//
    // 3.进度条
    QProgressBar* probar = new QProgressBar;
    probar->setParent(this);
    probar->move(0, 250);
    probar->resize(this->size().width(), 20); // this->size().width() 表示本窗口的宽度
    probar->setValue(20); // 设定初始值为 20%

    // 通过滑动滑动条改变进度条进度
    connect(slider, &QSlider::valueChanged, [probar](int _value)->void{
        probar->setValue(_value);
    });

    // 文本编辑框
    QTextEdit* edit = new QTextEdit;
    edit->move(100, 300);
    edit->resize(300, 300);
    edit->setParent(this);

    edit->setFontUnderline(1); // 1 表示设置下划线
    edit->setFontPointSize(qreal(25)); // 设置了编辑框中文本的字号为 25
    edit->setText("你好,小爱同学"); // 设置文本框中的内容

    // 通过编辑文本框,改变label文本内容
    connect(edit, &QTextEdit::textChanged, [laber, edit]()->void{
        QString text = edit->toPlainText();
        laber->setText(text);
    });

    // ********************* 补充:老版本4.0以前:信号和槽的绑定方式
    // 点击按钮 最大化窗口
    QPushButton *btn = new QPushButton("老版本测试按钮", this);
    btn->move(500, 500);
    // 缺点:不会检测函数名,写错了也不会警告
    connect(btn, SIGNAL(clicked()), this, SLOT(showMaximized()));
}

Widget::~Widget()
{
}

http://www.kler.cn/a/5923.html

相关文章:

  • 【硬件测试】基于FPGA的BPSK+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
  • IEC61850遥控-增强安全选控是什么?
  • 【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜
  • MT6706BL 同步整流 规格书
  • 【MySQL 保姆级教学】用户管理和数据库权限(16)
  • Nature Electronics——近传感器计算:50 nm异构集成技术的革命
  • 阿里P8高级技术专家自述被裁员,疑似给市长写信,房贷月供3w,压力很大,出门面试找工作很难!...
  • 谷粒商城笔记+踩坑(22)——库存自动解锁。RabbitMQ延迟队列
  • python---数据容器
  • DRF知识点总结
  • 来给大家解释一下赌博为什么会输成穷光蛋。
  • 【C4D】基础快捷键操作,布尔操作——动不了怎么办+选不上怎么办+怎么移动+怎么拉平面或拉平一圈线
  • 算法第二十期——FLoyd算法的入门与应用
  • 我给Chat GPT写了个记忆系统
  • windows 电脑图片/视频不展示预览图
  • 线段树:解决区间查询和区间修改的利器
  • Activity登堂入室
  • 树状数组 基础知识——C++数据结构
  • STM32学习(十三)
  • 讲解有哪些实用的数据恢复工具
  • 【C语言】整形数据的存储和读取过程
  • 【算法】【数组与矩阵模块】矩阵中的最短通路值
  • Autodesk AutoCAD 2023(CAD设计软件)自动化工具介绍以及图文安装教程
  • Python项目部署上线
  • 【Docker学习笔记】9.Docker Machine及Swarm 集群管理
  • 嵌入式linux网卡bonding配置