天天看點

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,我們更是工匠-精益求精、嚴謹、耐心,專注,堅持。

繼續閱讀