首页 > 其他分享 >Qt:10.显示类控件(QLabel-显示文本或图像的控件、QLCDNumber -显示数字的特殊控件、QProgressBar-进度条、QCalendarWidget-日历)

Qt:10.显示类控件(QLabel-显示文本或图像的控件、QLCDNumber -显示数字的特殊控件、QProgressBar-进度条、QCalendarWidget-日历)

时间:2024-07-09 20:59:09浏览次数:16  
标签:控件 显示 Qt 10 设置 文本 属性

目录

一、QLabel-显示文本或图像的控件:

1.1QLabel介绍:

1.2设置文本格式——textFormat属性:

1.3设置图片——pixmap属性:

1.4自动缩放——scaledContents属性:

拓展:resizeEvent方法:

1.5内容对齐方式——alignment属性:

1.6 自动换行——wordWrap属性:

1.7 文本缩进——indent 属性:

1.8 设置控件边距或留白区域——margin属性:

二、QLCDNumber -显示数字的特殊控件:

2.1QLCDNumber介绍:

2.2实例——倒计时小程序:

三、QProgressBar-进度条:

3.1QProgressBar介绍:

3.2属性介绍:

3.3实例——简单的进度条:

四、QCalendarWidget-日历:

4.1QCalendarWidget介绍:

4.2属性介绍:

4.3信号介绍:


一、QLabel-显示文本或图像的控件:

1.1QLabel介绍:

  • QLabel 是 Qt 框架中的一个控件类,用于显示文本或图像。
  • 他继承自QWidget,所以可以使用QWidget的方法。
  • 基础属性有:

        

1.2设置文本格式——textFormat属性:

  • textFormat 属性用于设置标签中显示文本的格式。他是一个枚举类型。
  • 默认的格式为AutoText
Qt::AutoText自动检测文本格式。
Qt::PlainText将文本视为纯文本。
Qt::RichText将文本视为富文本(HTML 格式)。
Qt::MarkDownText将文本视为makedown格式。
  • 获取label控件的文本格式:
Qt::TextFormat format=label->textFormat();
  • 设置label控件的文本格式:
label->setTextFormat(Qt::AutoText/PlainText/RichText/MarkDownText);

1.3设置图片——pixmap属性:

  • pixmap 属性用于显示图像。使用 pixmap 属性将一个 QPixmap 对象设置为label的内容,从而在label中显示图像。
  • 建议使用QRC机制管理的图片,来设置为label的内容。
label->setPixmap(QPixmap(": + 后缀 + 相对路径"));

1.4自动缩放——scaledContents属性:

  • scaledContents 是 QLabel 类中的一个布尔属性,用于控制标签中显示的图像或文本是否自动缩放以适应标签的大小。

  • scaledContents 设置为 true 时,QLabel 会自动调整显示的内容(图像或文本)的大小,使其完全适应标签的大小。

  • 默认情况下,scaledContents 的值为 false,这意味着标签中的内容将以其原始尺寸显示。

ui->label->setScaledContents(true);

拓展:resizeEvent方法:

  • resizeEvent 是 QWidget 类中的一个虚方法。使用要包含头文件<QResizeEvent>。
  • 当窗口小部件的大小发生变化时,该方法会被自动调用。通过重写这个方法,可以自定义控件在调整大小时的行为。
void Widget::resizeEvent(QResizeEvent* event)
{
    ui->label->setGeometry(0,0,event->size().width(),event->size().height());
}

//上述代码,设置了一个label控件,可以让该控件的宽和高随着窗口的改变而改变
  • 这个函数被自动调用后,可以通过event->size()来获取控件新的大小。
  • event->size()->width() 和 event->size()->height()可以获取新的宽度和高度。

1.5内容对齐方式——alignment属性:

  • alignment 属性用于设置标签中文本或内容的对齐方式。这个属性接受枚举类型的值,可以控制内容在标签中的水平和垂直对齐。

  • 设置对齐方式:
label->setAlignment(Qt::AlignCenter); 
  • 可以设置的属性有:

        

  • 以下是一个例子:

        

1.6 自动换行——wordWrap属性:

  • wordWrap属性,用于控制标签中的文本是否自动换行。
  • 当文本的长度超过标签的宽度时,如果 wordWrap 属性设置为 true,文本会自动换行显示;如果设置为 false,文本会截断或溢出标签的边界。

  • 设置自动换行:
label->setWordWrap(true); 
  • 获取 wordWrap 属性:
bool isWordWrapEnabled = label->wordWrap();
  • 汉字可以自动换行。
  • 长串的数字或字母有时不会自动换行,这是由于系统会尝试在不破坏单词的前提下进行换行。
  • 文本中的空格和标点符号(如句号、逗号、冒号等)是常见的换行点。当文本遇到这些字符时,系统会优先在这些位置进行换行。

1.7 文本缩进——indent 属性:

  • indent 属性用于控制控件中的文本缩进,缩进的单位是像素。
  • 默认情况下,indent 属性为 -1,表示没有缩进。
  • 这样设置的缩进,并非只有首行缩进,当和自动换行联合使用时,每一行都会被缩进指定像素数量。

  • 设置文本缩进格式:
label2->setIndent(20);  //20像素的缩进

1.8 设置控件边距或留白区域——margin属性:

  • margin用于指定控件的边框与文本内容之间的空白区域的大小。,默认值为0。
  • 需要注意的是,设置留白区域之后,剩余的区域如果不够所有文本的显示,多余的文本会被截断。

  • 设置 margin 属性:
label2->setMargin(20); 

二、QLCDNumber -显示数字的特殊控件:

2.1QLCDNumber介绍:

  • QLCDNumber 控件是 Qt 中用于显示数字的特殊控件。
  • 通常用于显示需要精确控制格式和显示方式的数字。它提供了一种类似数字显示器或LCD屏幕的视觉效果,适合显示整数或浮点数。
smallDecimalPoint控制小数点的显示大小。如果设置为 true,小数点将以较小的尺寸显示。
digitCount设置显示数字的位数。这包括整数位和小数位的总数。
mode控制显示数字的模式,可以是十进制(Dec)、十六进制(Hex)、八进制(Oct)或二进制(Bin)。
segmentStyle设置显示数字的样式。
value获取或设置 QLCDNumber 显示的当前值。可以是浮点数。
intValue获取 QLCDNumber 显示的当前整数值。如果当前显示的是浮点数,将返回其整数部分。

2.2实例——倒计时小程序:

  • 拉一个QLcdNumber组件到ui界面。
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    
    //设置初始显示的数值
    ui->lcdNumber->display(6);
    //创建一个定时器,并将它挂到对象树上
    timer=new QTimer(this);
    //将定时器和处理函数绑定
    connect(timer,&QTimer::timeout,this,&Widget::handle);
    //设置定时器的启动间隔
    timer->start(1000);
}


void Widget::handle()
{
    //获取当前显示的数值
    int val=ui->lcdNumber->intValue();
    //如果数值不大于0,就停止计时器
    if(val<=0)
    {
        timer->stop();
        return;
    }
    //重新设置显示的数值
    ui->lcdNumber->display(val-1);
}
  • 定时器QTimer使用需要包含头文件<QTimer>

三、QProgressBar-进度条:

3.1QProgressBar介绍:

  • QProgressBar 是 Qt 库中用于显示进度的控件。它可以用来表示任务的进度。
  • 通常以填充条的形式显示,表示从 0 到 100 的百分比。

3.2属性介绍:

minimum
  • 进度条的最小值。
  • setMinimum(int min) 设置最小值
  • minimum() 获取当前最小值。
maximum
  • 进度条的最大值。
  • setMaximum(int max) 设置最大值
  • maximum() 获取当前最大值。
value
  • 进度条的当前值。
  • setValue(int value) 设置当前值
  • value() 获取当前值。
alignment
  • 进度条文本的对齐方式。
  • setAlignment(Qt::Alignment alignment) 设置对齐方式
  • alignment() 获取当前对齐方式。
  • 常见对齐方式有 Qt::AlignLeft、Qt::AlignRight 和 Qt::AlignCenter。
textVisible
  • 进度条上是否显示文本。
  • setTextVisible(bool visible) 设置文本显示状态.
  • isTextVisible() 获取当前文本显示状态。
orientation
  • 进度条的方向(水平或垂直)。
  • setOrientation(Qt::Orientation orientation) 设置方向。
  • orientation() 获取当前方向。常用方向有 Qt::Horizontal 和 Qt::Vertical。
invertedAppearance
  • 进度条的外观是否反转。如果为 true,则进度条从右到左或从下到上填充。
  • setInvertedAppearance(bool invert) 设置外观是否反转。
  • invertedAppearance() 获取当前外观是否反转。
textDirection
  • 进度条文本的方向(从左到右或从右到左)。
  • setTextDirection(QProgressBar::Direction textDirection) 设置文本方向。
  • textDirection() 获取当前文本方向。常用方向有 QProgressBar::TopToBottom 和 QProgressBar::BottomToTop。
format
  • 进度条上显示的文本格式。可以使用 %p 代表百分比。
  • setFormat(const QString &format) 设置文本格式。
  • format() 获取当前文本格式。

3.3实例——简单的进度条:

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //创建定时器
    timer=new QTimer(this);
    //连接到槽函数
    connect(timer,&QTimer::timeout,this,&Widget::handle);
    //设置启动间隔
    timer->start(100);
}

void Widget::handle()
{
    //获取当前进度条数值
    int val=ui->progressBar->value();
    //大于等于100,停止定时器
    if(val>=100)
    {
        timer->stop();
        return;
    }
    //更新进度条
    ui->progressBar->setValue(val+2);
}

四、QCalendarWidget-日历:

4.1QCalendarWidget介绍:

  • QCalendarWidget 是 Qt 库中的一个日期选择控件。
  • 允许用户在一个日历界面中选择日期。

4.2属性介绍:

selectedDate
  • 当前选中的日期。
  • setSelectedDate(const QDate &date) 设置选中的日期
  • selectedDate() 获取当前选中的日期。
minimumDate
  • 日历控件允许选择的最小日期。
  • setMinimumDate(const QDate &date) 设置最小日期
  • minimumDate() 获取最小日期。
maximumDate
  • 日历控件允许选择的最大日期。
  • setMaximumDate(const QDate &date) 设置最大日期
  • maximumDate() 获取最大日期。
firstDayOfWeek
  • 一周的第一天
  • setFirstDayOfWeek(Qt::DayOfWeek day) 设置一周的第一天
  • firstDayOfWeek() 获取当前一周的第一天。
gridVisible
  • 是否显示网格线。
  • setGridVisible(bool show) 设置网格线显示状态
  • isGridVisible() 获取网格线显示状态。
selectionMode
  • 日历控件的选择模式。
  • setSelectionMode(QCalendarWidget::SelectionMode mode) 设置选择模式.
  • selectionMode() 获取当前选择模式。选择模式可以是 QCalendarWidget::NoSelection QCalendarWidget::SingleSelection。
horizontalHeaderFormat
  • 水平标题的显示格式
  • setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format) 设置水平标题格式。
  • horizontalHeaderFormat() 获取当前水平标题格式。格式可以是 QCalendarWidget::NoHorizontalHeader、QCalendarWidget::SingleLetterDayNames 或 QCalendarWidget::ShortDayNames。
verticalHeaderFormat
  • 垂直标题的显示格式
  • setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format) 设置垂直标题格式。
  • verticalHeaderFormat() 获取当前垂直标题格式。格式可以是 QCalendarWidget::NoVerticalHeader 或 QCalendarWidget::ISOWeekNumbers。
navigationBarVisible
  • 是否显示导航栏。
  • setNavigationBarVisible(bool visible) 设置导航栏显示状态。
  • isNavigationBarVisible() 获取导航栏显示状态。
dateEditEnabled
  • 是否启用日期编辑。
  • setDateEditEnabled(bool enable) 设置日期编辑状态。
  • isDateEditEnabled() 获取日期编辑状态。
dateEditAcceptDelay
  • 日期编辑接受的延迟时间
  • setDateEditAcceptDelay(int delay) 设置日期编辑接受的延迟时间
  • dateEditAcceptDelay() 获取当前延迟时间。

4.3信号介绍:

selectionChanged()当用户更改日历中的选定日期时发射此信号。
activated(const QDate &date)当用户双击某个日期或按下 Enter 键时发射此信号。
clicked(const QDate &date)当用户单击某个日期时发射此信号。
currentPageChanged(int year, int month)当用户通过导航栏更改当前显示的月份时发射此信号。
selectionChanged()当用户选择的日期发生变化时发射此信号。

标签:控件,显示,Qt,10,设置,文本,属性
From: https://blog.csdn.net/weixin_63716012/article/details/140133432

相关文章

  • 洛谷P1014Cantor 表 C语言
    #include<stdio.h>intmain(){intinput;inth,k;inti,sum=0;scanf("%d",&input);for(i=1;;i++){sum+=i;//求出input数在那个范围内,i就是行数,sum就是所有行加起来数的个数if(sum>=input){h=......
  • 010 基于 SBI 服务完成输出和关机
    RustSBI的两个职责它会在计算机启动时进行它所负责的环境初始化工作,并将计算机控制权移交给内核在内核运行时响应内核的请求为内核提供服务这里用不太确切的话表述一下,RustSBI作为介于内核和硬件之间的软件,要完成输出和关机,思路是内核需要调用RustSBI进行对硬件的控制的.......
  • DMSQF ECO2101 Microeconomics
    DMSQF ECO2101 MicroeconomicsCA1 Individual Project - Instructions for StudentsJuly 2024 Semester (BLENDED)CA1 IndividualProjectAssessmentn This CA1 constitutes 30% of the overall ECO2101 Microeconomics course assessment. Rational......
  • 文案板块:5分钟掌握批量创作100条小红书爆款笔记文案(机器人实操训练)
    引言在数字营销的世界里,内容为王。但如何在短时间内制作出大量高质量的内容,以吸引并保持受众的注意力呢?作为普通人,你要有结果,你除非有非常过人的内容制作能力,不然就是批量化,否则大概率很难有办法突破短时间内的流量爆发。这种搞流量的方法确实也适合小白,因为基本上都是重复......
  • 练习10.7_加法计算器_Python编程:从入门到实践(第3版)
    将为练习10.6编写的代码放在一个while循环中,让用户在犯错(输入的是文本而不是数)后能够继续输入数。#10.6try:expectwhileTrue:num1=input("请输入一个整数:")try:num1_int=int(num1)breakexceptValueError:print("......
  • NodeJS蔬菜自产零售混合销售平台-计算机毕业设计源码10149
    摘 要随着移动互联网的快速发展,购物方式也发生了巨大的变化。蔬菜作为消费者生活中必不可少的商品之一,在移动互联网时代也迎来了新的购物方式——购物小程序。购物小程序是一种基于手机应用平台的轻量级应用程序,用户可以通过它方便地浏览、选择和购买蔬菜。本文介绍了一个......
  • .NET6 Swagger右上角的Authorize权限按钮不显示,如何开启
    首先.NET6是自带Swagger的,无需手动引入,但是有个问题,最初的Swagger是没有开启Authorize按钮的。 最初的模样如何把它显示出来并将token信息加入header中呢?只需在program.cs页面中加入如下代码:builder.Services.AddSwaggerGen(c=>{varsecurity=newOpenApiSecuri......
  • uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获
    项目场景:uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名例如:问题描述官方给的文档有限,需要自己下载地图json数据然后自己渲染和编写鼠标悬浮显示内容以及获取点击地址名称,官方只给了@getIndex事件获取下......
  • PointNet——源码调试(模型训练+可视化测试显示)
    因为项目涉及到3D点云项目,故学习下PointNet这个用来处理点云的神经网络论文的话,大致都看了下,网络结构有了一定的了解,本博文主要为了下载调试PointNet网络源码,训练和测试调通而已,不涉及后续的改进优化。我是在Anaconda下创建一个新的虚拟环境空间部署项目测试大概用到的就......
  • 100G GigE(Gigabit Ethernet,千兆以太网)与CXP
    100GGigE(GigabitEthernet,千兆以太网)与CXP(CoaXPress)接口在机器视觉和高速数据传输领域各有其独特之处。以下是对这两种接口的比较:一、带宽与速度100GGigE:带宽:100GGigE的最大带宽可达100Gbps或12,500Mbytes/s,是目前业界最快的单链路解决方案之一。优势:提供极高的数据......