天天看点

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

qlabel提供了一个文本或图像的显示,没有提供用户交互功能。

一个qlabel可以包含以下任意内容类型:

内容

设置

纯文本

使用settext()设置一个qstring

富文本

使用settext()设置一个富文本的qstring

图像

使用setpixmap()设置一个图像

动画

使用setmovie()设置一个动画

数字

使用setnum()设置int或double,并转换为纯文本。

nothing

空的纯文本,默认的,使用clear()设置

<a href="#%e7%ae%80%e8%bf%b0">简述</a>

<a href="#%e7%ba%af%e6%96%87%e6%9c%ac">纯文本</a>

<a href="#%e6%98%be%e7%a4%ba">显示</a>

<a href="#%e5%af%b9%e9%bd%90%e6%96%b9%e5%bc%8f">对齐方式</a>

<a href="#%e8%87%aa%e5%8a%a8%e6%8d%a2%e8%a1%8c">自动换行</a>

<a href="#%e8%ae%be%e7%bd%ae%e8%a1%8c%e9%ab%98">设置行高</a>

<a href="#%e7%9c%81%e7%95%a5">省略</a>

<a href="#%e5%9e%82%e7%9b%b4%e6%98%be%e7%a4%ba">垂直显示</a>

<a href="#%e5%af%8c%e6%96%87%e6%9c%ac">富文本</a>

<a href="#%e5%9b%be%e5%83%8f">图像</a>

<a href="#%e5%8a%a8%e7%94%bb">动画</a>

<a href="#%e6%95%b0%e5%ad%97">数字</a>

<a href="#%e8%b6%85%e9%93%be%e6%8e%a5">超链接</a>

<a href="#%e6%96%b9%e6%b3%95%e4%b8%80">方法一</a>

<a href="#%e6%96%b9%e6%b3%95%e4%ba%8c">方法二</a>

<a href="#%e6%80%bb%e7%bb%93">总结</a>

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

首先我们构造一个qlabel对象,其中this为其所在的父窗体。通过调用settext可以为标签设置文本(hello world),这时标签就可以正常显示出来了。为了显示更佳的效果,我们可以通过调用setstylesheet来设置样式。color: white-顾名思义,就是为标签设置一个文本色(白色)。

默认的标签文本对齐方式为:左对齐、垂直居中,我们可以通过setalignment来设置,包括:左、上、右、下、居中对齐,一般情况,我们会进行两两组合(水平方向、垂直方向)。

比如:居中对齐

使用样式表来控制(水平居右、垂直居下):

如果文本过长,我们可以采用自动换行的方式来显示。

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

注意:当使用英文的时候,如果写为类似形式”abcdefghijklmnopqrstuvwxyz”则是不能换行的,why?因为中间没有空格,所以需要写为”abcde fghij klmno pqrst uvwxyz”。

一般情况下,自动换行之后文本上下行会距离比较近,我们可以通过下面方式来设置行高。

如果过长,我们又不想换行,只想把其中一部分省略为…,那么我们可以通过qfontmetrics来实现,这里先不介绍qfontmetrics,感兴趣的童鞋可以先自行研究。

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

默认情况下,文本显示方式为水平方向,如果我们需要在垂直方向上显示,需要用一些小技巧来处理。

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

我们可以在助手中查找关于<code>using html markup in text widgets</code>的资料,查看qt支持哪些html标记。

下面我们来写一段html代码,o(∩_∩)o哈哈~。。。显示不同颜色的文本以及图片

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

是不是很神奇?经常我们要用好几个控件来组合才能实现的功能,就仅仅几行html代码就搞定了。。。何乐而不为!

首先我们构建一个qpixmap来作为显示的图片,然后设置标签的大小,可以通过setscaledcontents按比例缩放图片达到理想的效果。

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

这里我们需要使用另外一个类qmovie来控制动画,start()可以进行播放与stop()则可以停止,也可以通过调用setspeed()来设置动画的播放速度。

Qt之QLabel简述纯文本富文本图像动画数字超链接总结

如果我们需要显示一个数字,则可以调用setnum(),他可以将内容转换为纯文本。

很简单就一段代码,我们可以打开源码瞅瞅,究竟setnum是如何实现的。

就三行代码,呵呵哒。。。超简单吧,我们要有一颗随时看源码的心!

我们需要简单使用标签<code>&lt;a&gt;&lt;/a&gt;</code>写一段简单的html超链接代码

比较简单,直接调用setopenexternallinks(true)即可。

声明一个槽openurl,将其与linkactivated信号关联。

通过上面的学习,我们基本将标签的大部分用法都分享了,可以看出html、css的重要性,所以无论你现在所从事的工作是什么,或者以后做什么,我都建议好好研究下web,技多不压身。。。上面的内容虽多,但都很简单,也很重要,所以都需要掌握,我们不只是qter,我们更是工匠-精益求精、严谨、耐心,专注,坚持。

继续阅读