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

qt显示类控件--- Label

目录

核心属性

案例演示

案例1:显示不同格式的文本

案例2:显示图片

案例3:⽂本对⻬,⾃动换⾏,缩进,边距

案例四:设置伙伴关系


QLabel这个组件表示标签,用于显示图标和固定最大长度的文字

核心属性

案例演示

案例1:显示不同格式的文本

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//QLabel这个组件表示标签,用于显示图标和固定最大长度的文字//我们来了解下其的属性和内置的方法//setTextFormat(Qt::) 用于设置文本的显示格式,一共可以设置4种不同的形式//相关格式在Qt::TextFormat枚举类型里面//设置成纯文本---最普通的文本ui->label->setTextFormat(Qt::PlainText);ui->label->setText("这是一段纯文本");//设置为富文本(支持html标签),内容更丰富ui->label_2->setTextFormat(Qt::RichText);ui->label_2->setText("<b>这是一段富文本</b>");//设置为markdown格式---支持markdown的书写格式ui->label_3->setTextFormat(Qt::MarkdownText);ui->label_3->setText("这是一段markdown文本");//根据文本内容自动决定格式ui->label_4->setTextFormat(Qt::AutoText);ui->label_4->setText("<b>这是一段自动文本</b>");}

案例2:显示图片

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QLabel>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);QLabel* lab;~Widget();//拖到窗口相当于触发这个事件,重写这个方法可以改变这个事件的逻辑, 本质就是多态void resizeEvent(QResizeEvent *event) override;private:Ui::Widget *ui;};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
#include<QDebug>
#include<QResizeEvent>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//对于一个标签组件不会自动提供滚动条//为一个标签设置图片,让这个标签和整个窗口一样大lab = new QLabel(this);QRect rec = this->geometry();lab->setGeometry(0, 0, rec.width(), rec.height()); //是设置到widget上只能这么大QPixmap pixmap(":/jsj.png");lab->setPixmap(pixmap);//以上这么没有设置图片的大小,导致图片和label无法等大//setScaledContents(bool) 启动图片或者文字的自动拉伸,此时图片就充满整个label啦lab->setScaledContents(true);//由于setGeometry设置大小是一次性的,所以当我们进行拉伸窗口的时候就没办法改变标签的大小了,这种硬编码没办法动态的改变大小}//此时传入的形参QResizeEvent内包含了实时显示的窗口的尺寸数据
void Widget::resizeEvent(QResizeEvent *event)
{qDebug() << event->size();//长和宽lab->setGeometry(0, 0, event->size().width(), event->size().height());QPixmap pixmap(":/jsj.png");lab->setPixmap(pixmap);lab->setScaledContents(true);
}
Widget::~Widget()
{delete ui;
}

案例3:⽂本对⻬,⾃动换⾏,缩进,边距

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//QFrame 的4个控制视觉样式属性的方法,用来控制“边框长什么样”//QLabel继承自QFrame//frameShape —— 外框形状//frameShadow —— 阴影/立体风格//lineWidth —— 外线宽//(当 frameShadow = Plain 时,它就是肉眼看到的线宽。)//midLineWidth —— 中线宽(立体的)//frameShadow 切到 Raised/Sunken,就会多出一条高亮/暗线,形成 3D 效果//setAlignment(Qt::) 是 QLabel(以及部分其他控件)用来设置 内容对齐方式 的函数。ui->label_2->setAlignment(Qt::AlignRight | Qt::AlignVCenter);  // 右居中, 使用按位或进行包含调整//由于文本调整策略很多,自己了解//setWordWrap(bool) 用于设置自动换行, 只能让“纯文本”自动换行ui->label_3->setText("sssssssssssssssssssssssssssssssss"); ////我们发现QLabel面对有空格等特殊符号或中文时可以自动换行,只需要设置setWordWrap(true)即可,//当面对没有分隔开的长串英文与数字、英文符号(如 '.'就是英文符号,‘。’就是中文符号)时,QLabel无法自动换行ui->label_3->setWordWrap(true);//setIndent(px) //设置所有行的缩进,标签无法单独设置首行缩进ui->label_4->setText("啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"); //ui->label_4->setWordWrap(true);ui->label_4->setIndent(50);//setMargin(px) 设置边距ui->label_4->setMargin(30);//setMargin(int) 就是 一次性设置 QLabel 四周的内边距(内容到边框的距离,单位像素)。//由于不会拉伸文字所以会出现4边距离不一致的情况, 由于是相当于内缩的所以会有挡住文字的可能//如果你想单独控制上下左右边的距离使用setContentsMargins//setContentsMargins(px, px, px, px)ui->label_4->setContentsMargins(10, 6, 6, 6);}Widget::~Widget()
{delete ui;
}

案例四:设置伙伴关系

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置label与按钮的伙伴关系//setBuddy(QWidget*)  用于设置与某个控件的伙伴关系,相当于label变成快捷键能触发这个设置了伙伴关系的控件了ui->label->setBuddy(ui->radioButton);ui->label_2->setBuddy(ui->radioButton_2);//我们直接点击这个label是没有用的,是在文本中存在使用&跟上一个字符来表示快捷键,无视大小写//怎么触发:比如&a是通过键盘上alt+a键进行触发快捷键功能的//label快捷键的功能要比QPushButton弱很多//原因:QLabel 的“快捷键”功能只是把焦点转移到它的 buddy 控件,本身不触发任何动作;//而 QPushButton 的快捷键会直接发出 clicked() 信号,执行一段业务逻辑——功能上“强”得多
}Widget::~Widget()
{delete ui;
}

http://www.dtcms.com/a/613638.html

相关文章:

  • 【深度学习】基于Faster R-CNN与HRNet的豆类品种识别与分类系统
  • 专业建设网站公司东莞阿里巴巴代运营
  • 【深度学习】YOLOv10n-MAN-Faster实现包装盒flap状态识别与分类,提高生产效率
  • 网站备案需要费用吗中国容桂品牌网站建设
  • 知识图谱与中医古籍的数智化融合:中医药多智能体大模型系统的未来展望
  • wordpress全站cdn法人变更在哪个网站做公示
  • 鸿蒙开发TypeScript第六课:对象
  • 【Linux日新月异(四)】CentOS 7进程管理深度指南:掌控系统生命线
  • 如何避免新手对 instanceof 的误解?
  • 每周AI看 | OpenAI发布GPT-5.1、网易云商自研内部知识问答Agent、商汤开源空间智能大模型
  • 移动端部署噩梦终结者:动态稀疏视觉Transformer的量化实战
  • 【LeetCode刷题】找到字符串中所有字母异位词
  • 榆林城乡建设规划官方网站中国室内设计师
  • oneinstack wordpress成都官网seo服务
  • Go语言编译 | 探讨Go语言编译原理与优化技巧
  • 【深入理解】动静态库的制作、使用与加载原理(附详细操作指南)
  • OpenFeign:完整学习笔记
  • Vue 3 的Suspense组件:讲解如何使用_Suspense_处理异步组件加载状态
  • 【go.sixue.work】2.2 面向对象:接口与多态
  • 建设网站需要收费吗做淘客找单子的网站
  • 视频号直播视频录制
  • 抓取资源的网站怎么做珠海网站设计培训班
  • CPO(Co-Packaged Optics) 是整个数据中心互连范式的下一代核心
  • 1.5 ShaderFeature
  • 暄桐教练日课·10天《梦瑛篆书千字文》报名啦~
  • 从代码规范到 AI Agent:现代前端开发的智能化演进
  • 【MySQL】01 数据库入门
  • dede网站地图栏目如何上传文件wordpress禁用古登堡
  • 【ZeroRange WebRTC】RTP/RTCP/RTSP协议深度分析
  • 有商家免费建商城的网站吗网站上面关于我们要怎么填写