QT中文字的繪制


為什么要做這次文字的介紹,因為在一般的教材中,還真沒有文字的描述:

 

1.繪制最簡單的文字。

我們更改重繪函數如下:

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawText(100,100,”yafeilinux”);

}

我們在(100,100)的位置顯示了一行文字,效果如下。

 

2.為了更好的控制字體的位置。我們使用另一個構造函數。在幫助里查看drawText,如下。

 

這里我們看到了構造函數的原型和例子。其中的flags參數可以控制字體在矩形中的位置。我們更改函數內容如下。

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QRectF ff(100,100,300,200);

//設置一個矩形
painter.drawRect(ff);
//為了更直觀地看到字體的位置,我們繪制出這個矩形
painter.setPen(QColor(Qt::red));
//設置畫筆顏色為紅色
painter.drawText(ff,Qt::AlignHCenter,”yafeilinux”);
//我們這里先讓字體水平居中
}

效果如下。

 

可以看到字符串是在最上面水平居中的。如果想讓其在矩形正中間,我們可以使用Qt::AlignCenter。

這里我們也可以使用兩個枚舉變量進行按位與操作,例如可以使用Qt::AlignBottom|Qt::AlignHCenter實現讓文字顯示在矩形下面的正中間。效果如下。

 

對於較長的字符串,我們也可以利用“\n”進行換行,例如”yafei\nlinux”。效果如下。

 

3.如果要使文字更美觀,我們就需要使用QFont類來改變字體。先在幫助中查看一下這個類。

 

可以看到它有好幾個枚舉變量來設置字體。下面的例子我們對主要的幾個選項進行演示。

更改函數如下。

void Dialog::paintEvent(QPaintEvent *)
{
QFont font(“Arial”,20,QFont::Bold,true);
//設置字體的類型,大小,加粗,斜體
font.setUnderline(true);
//設置下划線
font.setOverline(true);
//設置上划線
font.setCapitalization(QFont::SmallCaps);
//設置大小寫
font.setLetterSpacing(QFont::AbsoluteSpacing,5);
//設置間距
QPainter painter(this);
painter.setFont(font);
//添加字體
QRectF ff(100,100,300,200);
painter.drawRect(ff);
painter.setPen(QColor(Qt::red));
painter.drawText(ff,Qt::AlignCenter,”yafeilinux”);
}

效果如下。

 

這里的所有字體我們可以在設計器中進行查看。如下。

 

<!-- end .entry -->


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM