Qt QLabel文本框的使用

news2024/11/19 1:53:25

文章目录

    • QLabel文本框的使用
    • QLabel文本框的信号和槽
    • 实例演示QLabel文本框的用法

已剪辑自: http://c.biancheng.net/view/vip_9653.html

QLabel 是 Qt 帮我们写好的一个控件类,间接继承自 QWidget 类,它的继承关系如下:

QLabel -> QFrame -> QWidget

从字面上理解,QLabel 可以解释为“Qt 的 Label”,即 Qt 提供给我们的一种文本控件,它的基础功能是显示一串文本。例如,下图就是一个普通的文本框:

img
图 1 QLabel控件

除了显示一串文本外,QLabel 控件上还可以放置图片、超链接、动画等内容。例如:

img
图 2 QLabel放置图片和超链接文字

本质上,每个文本框都是 QLabel 类的一个实例对象。QLabel 类提供了两个构造函数,分别是:

QLabel(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(const QString &text, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())

各个参数的含义分别是:

  • text 参数用于指定文本框中显示的文字;
  • parent 参数用于指定文本框的父窗口;
  • WindowFlags 是一种枚举类型,f 参数用来设置文本框的一些系统属性和外观属性,默认值为 Qt::Widget,表示当不指定父窗口时,文本框将作为一个独立窗口(如图 1、2 所示),反之则作为父窗口中的一个控件。f 参数的可选值有很多,比如 Qt::Window 表示文本框将作为一个独立的窗口,它自带边框和标题栏,Qt::ToolTip 表示文本框将作为一个提示窗口,不带边框和标题栏等等,这里不再一一列举。

需要注意的是,第一个构造函数中的 parent 和 f 参数都有默认值,因此 QLabel 类还隐含了一个默认构造函数。也就是说,创建 QLable 对象时可以不传递任何参数,或者只给 txt 参数传递一个字符串,就可以成功创建一个文本框。通常情况下,我们会给 text 和 parent 参数传递相应的值,即在创建文本框的同时指定文本内容和父窗口。

QLabel文本框的使用

QLabel 类本身提供有很多属性和方法,它还从父类继承了很多属性和方法。下表给大家罗列了 QLabel 类常用的一些属性和方法:

表 1 QLabel 常用属性 属 性 含 义

alignment保存 QLabel 控件中内容的对齐方式,默认情况下,QLabel 控件中的内容保持左对齐和垂直居中。 该属性的值可以通过调用 alignment() 方法获得,可以借助 setAlignment() 方法修改。
text保存 QLabel 控件中的文本,如果 QLabel 控件中没有文本,则 text 的值为空字符串, 该属性的值可以通过 text() 方法获得,可以借助 setText() 方法修改。
pixmap保存 QLabel 控件内显示的图片,如果控件内没有设置图片,pixmap 的值为 0。 该属性的值可以通过调用 pixmap() 方法获得,可以借助 setPixmap() 方法修改。
selectedText保存 QLabel 控件中被选择了的文本,当没有文本被选择时,selectedText 的值为空字符串。 该属性的值可以通过调用 selectedText() 方法获得。
hasSelectedText判断用户是否选择了 QLabel 控件内的部分文本,如果是则返回 true,反之则返回 false。默认情况下,该属性的值为 false。
indent保存 QLabel 控件内文本的缩进量,文本的缩进方向和 alignment 属性的值有关。 该属性的值可以通过调用 indent() 方法获得,可以借助 setIndent() 方法修改。
margin保存 QLabel 控件中内容与边框之间的距离(边距),margin 的默认值为 0。 该属性的值可以通过调用 margin() 方法获得,可以借助 setMargin() 方法修改。
wordWrap保存 QLabel 控件内文本的换行策略。当该属性的值为 true 时,控件内的文本会在必要时自动换行。默认情况下,控件内的文本是禁止自动换行的。 该属性的值可以通过 wordWrap() 方法获得,可以借助 setWordWrap() 方法修改。

除了上表中提到了获取和修改属性值得成员方法外,下表给大家罗列了一些常用的操作 QLabel 控件的成员方法,它们有些定义在 QLabel 类内,有些是通过继承父类得到的:

表 2 操作QLabel的常用方法 成员方法 功 能

hide()隐藏文本框。
clear()清空 QLabel 控件内所有显示的内容。
setToolTip(QString)设置信息提示,当用户的鼠标放在QLabel 文本框上时会自动跳出文字。
setToolTipDuration(int)设置提示信息出现的时间,单位是毫秒。
setStyleSheet(QString)设置 QLabel 文本框的样式。
setGeometry(int x, int y, int w, int h)设置 QLabel 文本框的位置 (x, y) 以及尺寸 (w, h)。

QLabel文本框的信号和槽

QLabel 控件只用来显示文本、图像等内容,很好与用户交互。但是,当 QLabel 控件内包含超链接内容时,可以使用 QLabel 类提供的两个信号函数:

表 2 QLabel信号函数 信号函数 功 能

linkActivated(const QString &link)用户点击超链接时触发,link 参数用于向槽函数传输超链接的 URL。
linkHovered(const QString &link)用户的鼠标悬停到超链接位置时触发,link 参数用于向槽函数传输超链接的 URL。

QLabel 控件提供了很多槽函数,如下表所示:

表 3 QLabel槽函数 槽函数 功 能

clear()清空 QLabel 控件内所有的内容。
setMovie(QMovie *movie)清空 QLabel 控件内所有的内容,改为显示指定的 movie 动画。
setNum(int num)清空 QLabel 控件内所有的内容,改为显示 num 整数的值。
setNum(double num)清空 QLabel 控件内所有的内容,改为显示 num 小数的值。
setPicture(const QPicture &picture)清空 QLabel 控件内所有的内容,改为显示经 QPicture 类处理的图像。
setPixmap(const QPixmap &)清空 QLabel 控件内所有的内容,改为显示经 QPixmap 类处理的图像。
setText(const QString &)清空 QLabel 控件内所有的内容,改为显示指定的文本。

除了表 2、3 罗列的这些信号和槽函数外,QLabel 类还从父类处继承了一些信号和槽函数,这里不再一一罗列。

实例演示QLabel文本框的用法

接下来通过一个实例,给大家演示 QLabel 控件中一些属性和方法的用法。

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //创建一个文本框
    QLabel lab;
    //设置文本框内容居中显示
    lab.setAlignment(Qt::AlignCenter);
    //设置文本框的坐标和尺寸
    lab.setGeometry(100,100,400,400);
    //设置文本框的外观,包括字体的大小和颜色、按钮的背景色
    lab.setStyleSheet("QLabel{font:30px;color:red;background-color:rgb(f9,f9,f9);}");
    //设置文本框要显示超链接内容
    lab.setText("<a href=\"http://c.biancheng.net\">C语言中文网");
    //当用户鼠标位于文本框上时,显示提示内容
    lab.setToolTip("点击超链接显示URL");
    //提示内容显示 1 秒
    lab.setToolTipDuration(1000);
    //为文本框设置信号和槽,当用户点击超链接时,将文本框内容改为超链接的 URL
    QObject::connect(&lab,&QLabel::linkActivated,&lab,&QLabel::setText);
    //程序运行后,文本框显示
    lab.show();
    return a.exec();
}

执行结果如下图所示,用户最先看到的是图 3a),当用户鼠标移动到文本框区域内时,会提示“点击超链接显示URL”,提示时间为 1 秒。当用户点击“C语言中文网”时会触发 linkActivated() 信号函数,该函数会调用 setText() 函数,将文本框中显示的“C语言中文网”改为“http://c.biancheng.net”,字体颜色为红色,如图 3b) 所示。

img

图 3 程序运行结果

有关 QLabel 类提供的更多属性和方法,后续章节用到时会做详细地讲解,您也可以借助 Qt Creator 提供的 Qt 帮助手册自行查看 QLabel 类提供的成员。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

消防宣传科普|消防安全知识网上答题挑战赛活动方案

活动背景 为普及消防法律法规和消防安全知识&#xff0c;营造消防宣传月浓厚氛围。集团公司防火办通过“防火安全知识专项学习与竞答”小程序&#xff0c;开展“消防知识网上答题挑战赛”&#xff0c;提升全员消防安全意识&#xff0c;提高抗御火灾、自防自救和组织疏散能力。…

配置FTP站点操作步骤—图解

前提条件(已安装FTP服务器可忽略)&#xff1a; 点击WinR后在运行窗口中输入control&#xff0c;将打开控制面板&#xff0c;选择【程序】—【启动或关闭Windows功能】—点击【Internet Information Services】勾选【FTP服务器】—点击【确定】按钮按照即可。 1.点击WinR后在运…

数字集成电路设计(六、Verilog HDL高级程序设计举例)

文章目录1. 数字电路系统设计的层次化描述方式1.1 Bottom-Up 设计方法1.2 Top-Down 设计方法2. 典型电路设计2.1 加法器树乘法器2.1.1 改进为两级流水线4位加法器树乘法器2.2 Wallace 树乘法器2.3 复数乘法器2.4 FIR滤波器的设计2.5 存储器的设计2.6 FIFO的设计1. 数字电路系统…

Mac下,protoc-gen-go-grpc: program not found or is not executable问题的解决

一 问题来源 在公司的项目中,需要把对应的proto文件生成对应的pb文件,当执行protoc相关命令时,出现报错:protoc-gen-go-grpc: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH …

IDEA配置Tomcat,先报500错误,刷新后报404.

IDEA配置Tomcat&#xff0c;先报500错误&#xff0c;刷新后报404的解决方法.错误1&#xff1a;JDK的版本高于JRE的版本错误2&#xff1a;Tomcat版本与JDK版本不相符报错截图 错误1&#xff1a;JDK的版本高于JRE的版本 这也是我个人在配置过程中&#xff0c;导致无法配置成功的…

HTML旅游网页设计制作 DW旅游网站官网滚动网页 DIV旅游风景介绍网页设计与实现

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

Transferrin-PEG-PMMA 转铁蛋白-聚乙二醇-聚甲基丙烯酸甲酯,F-PEG-PBA/PAE/PPS

产品名称&#xff1a;转铁蛋白-聚乙二醇-聚甲基丙烯酸甲酯 英文名称&#xff1a;Transferrin-PEG-PMMA 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观:固体或粘性液体&#xff0c;取决于分子量 PEG分子量可选&#xff1a;350、550、750、…

numpy数组索引、数组切片、数组形状修改、数组类型修改和数组去重

一、numpy数组索引、切片 直接进行索引&#xff0c;切片对象[:, :]&#xff1a;先行后列 代码如下 a np.array([[1, 2, 3], [11, 22, 33]]) # 二维数组 a[1, [0,1,2]] # 索引a np.array([[1, 2, 3], [11, 22, 33]]) # 二维数组 a[1, 0:3] # 切片a2 np.array([[[1,…

【Paper】2021_多智能体系统滞后一致性研究_马逸文

马逸文. 多智能体系统滞后一致性研究[D].西南民族大学,2021.DOI:10.27417/d.cnki.gxnmc.2021.000193. 文章目录第一章 绪论第三章 二阶离散线性多智能体系统滞后一致性3.5 数值仿真第一章 绪论 第三章 二阶离散线性多智能体系统滞后一致性 3.5 数值仿真 x0(k1)Ax0(k)v0(k)v0(…

脚本-抽取配置文件

要获取不同版本的下载链接需要通过三次点击才能进入到有下载链接的Html页&#xff0c;想写爬虫的话需要使用selenium去实现点击功能&#xff0c;然后这个网站比较乱&#xff0c;所以根据Xpath也不太好写&#xff08;可能得写好多异常处理&#xff09;&#xff0c;所以我选择手动…

数字化门店| 奶茶店智慧管理系统

奶茶如今已经成为年轻女性的常饮品&#xff0c;比如蜜雪冰城、奈雪的茶之类的品牌线下门店&#xff0c;门店量的庞大覆盖&#xff0c;使得每天都是人来人往&#xff0c;但碰上优惠活动日或节假日&#xff0c;很多人需要排很长的队才能买到&#xff0c;同时在店内坐的消费者如果…

[附源码]java毕业设计血库管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

网页期末作业 基于HTML+CSS中国传统节日【清明节】带论文8000字

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

关于python内置数据类型的小练习

文章目录练习-两数之和求不重复子串的长度练习-两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同…

Typescript 中根据某个字段判断其他字段是否必传

背景 我在使用 Typescript 的时候遇到过这样的一个问题。我有这样的一个组件 前面的两个搜索框是根据参数判断是否要隐藏的&#xff0c;Typescript 的类型定义就是这样的 type BasicItem {label: stringvalue: number } type BrandItem BasicItem & {}type Pruduction…

Linux19 --- 线程同步、用户级和内核级线程、互斥锁、信号量、读写锁、条件变量

一、线程同步 线程同步指的是当一个线程在对某个临界资源进行操作时&#xff0c;其他线程都不可以对这个资源进行操作&#xff0c;直到该线程完成操作&#xff0c;其他线程才能操作&#xff0c;也就是协同步调&#xff0c;让线程按预定的先后次序进行运行。 线程同步的方法有…

Windows OpenGL 图像透明度调节

目录 一.OpenGL 图像透明度 1.原始图片2.效果演示 二.OpenGL 图像透明度源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES …

Arduino开发实例-SR04T/SR04M 防水超声波传感器驱动

SR04T/SR04M 防水超声波传感器驱动 本文展示如何通过SR04T 防水超声波传感器获取距离数据。 本文还将讨论该模块的工作原理以及将数据处理。 1、SR04T/SR04M介绍 SR04T/SR04M超声波测距模块可提供21cm-600cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括收发一体的…

python 的cut与qcut

我想要实现多分类&#xff0c;样本不是均匀分布的 使用cut&#xff0c;可以实现自定义范围分类 使用qcut&#xff0c;可以实现每个 分类的个数大致相等 cut 与 qcut方法使用 参考 https://www.cnblogs.com/Motimer/p/16006313.html 1、cut方法 pandas.cut(x, bins, rightT…

x86和arm框架下的centOS

1 CPU架构分为 X86 &#xff0c; ARM &#xff0c;MIPS &#xff0c; power , ia64 AMD64 X86_64 x64 ,是64位的CPU 架构&#xff0c;区分ARM64 1.x86 &#xff1a; 复制指令集cisc,高性能&#xff0c;速度快&#xff0c;完成量打&#xff08;内存&#xff0c;硬盘&#xf…