qt繪製文字

2021-08-15 11:19:30 字數 1924 閱讀 4446

前面講解了 qt 圖形的基本繪製,包括: 直線、弧線、矩形、橢圓、、多邊形,以及其它一些高階用法,比如:漸變、轉換等。

本節主要分享文字的繪製。主要通過 qpainter 的 darwtext() 函式來實現,裡面包含多個過載函式,其中,可以通過 qrect 來指定繪製的區域,也可以通過 qpoint 來指定繪製的起始點。

qfont 類可以輔助設定文字的大小、粗細、字元間距等,然後使用 setfont() 來設定。 

qfontinfo 類用來獲取字型的資訊,可以通過 fontinfo() 函式來獲取。

也可以使用更多其它輔助類來實現更好的效果,比如:qtextoption、qfontmetrics。其中 qtextoption 可以對文字換行,並設定換行方式以及文字顯示方向等效果。qfontmetrics 可以計算文字長度,進行特殊處理(例如:顯示 …)。字型

先來看看一些基本的效果:

drawtext() 的過載函式比較,這裡先介紹常用的幾種繪製方式。

void mainwindow::paintevent(qpaintevent *event)

很多時候,我們需要控制文字的對其方式,例如:左對齊、居中對齊等。

從前面來看,無論我們使用哪種方式,首先都需要控制文字的繪製區域 - qrect 或起始點 qpoint,然後可以根據對齊方式來輔助控制位置的顯示 - 左對齊、右上對齊、居中對齊等。

有時,會出現類似情況,顯示不全:

很煩惱,有木有?沒關係,可以使用文字選項 qtextoption 來換行,也可以使用 qfontmetrics 以 … 的形式顯示。

當文字過長時,qtextoption 可用於換行:

除此以外,也可以設定對齊方式、換行方式以及文字顯示方向等效果。

如果文字過長,我們又不想換行,只想把其中一部分省略為 …,那麼可以通過 qfontmetrics 來實現。

這裡,當長度超過 200px 時,對文字右側設定 …。

void mainwindow::paintevent(qpaintevent *event)

使用 qfont 可以很輕易的設定文字的大小、字型間距等效果。

要獲取字型資訊 qfontinfo,可以呼叫 fontinfo()。當然,也可以新增更多效果,比如:通過 qtransform來實現轉換,這裡我們旋轉了 45 度。

QT文字繪製

1 基本繪製 qpainter painter this 這個this要斟酌下 painter.drawtext 100,100,yafeilinux 2 中級繪製 qpainter painter this qrectf ff 100,100,300,200 設定乙個矩形 painter.draw...

Qt繪製文字

1 基本繪製 qpainter painter this 這個this要斟酌下 painter.drawtext 100,100,yafeilinux 2 中級繪製 qpainter painter this qrectf ff 100,100,300,200 設定乙個矩形 painter.draw...

QT中文字的繪製

為什麼要做這次文字的介紹,因為在一般的教材中,還真沒有文字的描述 1.繪製最簡單的文字。我們更改重繪函式如下 void dialog paintevent qpaintevent 我們在 100,100 的位置顯示了一行文字,效果如下。2.為了更好的控制字型的位置。我們使用另乙個建構函式。在幫助裡檢...