Qt QLabel文本框的使用_qlabel()

   日期:2024-12-26    作者:osjmy 移动:http://mip.riyuangf.com/mobile/quote/37322.html
  • 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
#include
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) 所示。

图 3 程序运行结果

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

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导,让我们一起学习成长

Go)**
[外链图片转存中…(img-Vu7SfDCk-1712910264191)]


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号