【Qt】2D绘图之绘制文字
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 開發(fā)環(huán)境
- 03. 基本繪制
- 04. 使用范圍繪制文字
- 05. 使用字體繪制文字
- 06. 附錄
01. 概述
Qt中除了繪制圖形以外,還可以使用QPainter::darwText()函數(shù)來繪制文字,也可以使用QPainter::setFont()設置文字所使用的字體,使用QPainter::fontInfo()函
數(shù)可以獲取字體的信息,它返回QFontInfo類對象。在繪制文字時會默認使用抗鋸齒。
02. 開發(fā)環(huán)境
Windows系統(tǒng):Windows10
Qt版本:Qt5.15或者Qt6
03. 基本繪制
程序示例
void Widget::paintEvent(QPaintEvent *) {QPainter painter(this);painter.drawText(100, 100, "hello Qt"); }執(zhí)行結果
在(100, 100)的位置繪制了一個字符串。
04. 使用范圍繪制文字
函數(shù)原型:
第一個參數(shù)指定了繪制文字所在的矩形;第二個參數(shù)指定了文字在矩形中的對齊方式,它由Qt::AlignmentFlag枚舉類型進行定義,不同對齊方式也可以使用“|”操作符同時使用,這里還可以使用Qt::TextFlag定義的其他一些標志,比如自動換行等;第三個參數(shù)就是所要繪制的文字,這里可以使用“\n”來實現(xiàn)換行;第四個參數(shù)一般不用設置。
程序示例
void Widget::paintEvent(QPaintEvent *) {QPainter painter(this);//設置一個矩形QRectF rect(50, 50, 300, 240);painter.drawRect(rect);painter.setPen(QColor(Qt::red));//水平居中顯示 垂直居中painter.drawText(rect, Qt::AlignHCenter | Qt::AlignVCenter, "hello Qt");}執(zhí)行結果
05. 使用字體繪制文字
為了繪制漂亮的文字,可以使用QFont類來設置文字字體。
程序示例
void Widget::paintEvent(QPaintEvent *) {QPainter painter(this);QFont font("黑體", 15, QFont::Bold, true);//設置下劃線font.setUnderline(true);//設置上劃線font.setOverline(true);//設置字母大小寫font.setCapitalization(QFont::SmallCaps);//設置字符間距font.setLetterSpacing(QFont::AbsoluteSpacing, 10);//使用字體painter.setFont(font);painter.setPen(Qt::blue);painter.drawText(120, 80, tr("hello qt"));painter.translate(50, 50);painter.rotate(90);painter.drawText(0, 0, tr("湖北武漢"));}創(chuàng)建了QFont字體對象,使用的構造函數(shù)為QFont::QFont ( const QString & family,int pointSize = -1, int weight = -1, bool italic = false ),第一個參數(shù)設置字體的family屬性,這里使用的字體族為黑體,可以使用QFontDatabase類來獲取所支持的所有字體;第二個參數(shù)是點大小,默認大小為12;第三個參數(shù)為weight屬性,這里使用了粗體;最后一個屬性設置是否使用斜體。然后我們又使用了其他幾個函數(shù)來設置字體的格式,最后調用setFont()函數(shù)來使用該字體,并使用drawText()函數(shù)的另一種重載形式在點(120, 80)繪制了文字。后面又將坐標系統(tǒng)平移并旋轉,然后再次繪制了文字。運行程序,效果如下圖所示。
06. 附錄
源碼下載:【Qt】2D繪圖之繪制文字.rar
總結
以上是生活随笔為你收集整理的【Qt】2D绘图之绘制文字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Qt】2D绘图之坐标系统
- 下一篇: 【Qt】2D绘图之绘制路径