1. 程式人生 > 其它 >Qt之 QPainter:繪製文字

Qt之 QPainter:繪製文字

技術標籤:csshtmlpythonmavencanvas

http://shouce.jb51.net/qt-beginning/17.html

1、基本繪製

void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.drawText(100, 100, "qter.org_yafeilinux");
}

d9906a56ae3f1d8e10e73088c612a5e0ca0.jpg

2、控制文字的位置

F1:drawText

/* painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject"));

* rect:文字所在矩形區域
* Qt::AlignCenter:對齊方式,由Qt::AlignmentFlag列舉變數進行定義,不同對齊方式也可以使用|操作符同時使用,這裡還可以使用Qt::TextFlag定義的其他一些標誌,比如自動換行等
* tr("Qt\nProject"):所要繪製的文字,可以使用\n來實現換行
*/

void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QRectF rect(20, 20, 300, 200);

    painter.drawRect(rect);  //為了更直觀地看到字型的位置,我們繪製出這個矩形

    painter.setPen(QColor(Qt::red));
    painter.drawText(rect, Qt::AlignHCenter, "Qt\nProject");//字型水平居中
}

8f4c4df0a415d6e33f55da4497e8b48e029.jpg

3、QFont類來設定文字字型

#include <QPainter>
#include <QFont>
void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QRectF rect(20, 20, 300, 200);

    painter.drawRect(rect);  //為了更直觀地看到字型的位置,我們繪製出這個矩形

    painter.setPen(QColor(Qt::red));
    QFont font("宋體", 15, QFont::Bold, true);   //字型,大小,粗體,斜體
    font.setCapitalization(QFont::Capitalize);   //設定字母大小寫
//    font.setUnderline(true); //設定下劃線
//    font.setOverline(true); //設定上劃線
   // font.setLetterSpacing(QFont::AbsoluteSpacing, 10); //設定字元間的間距
    painter.setFont(font);
    painter.drawText(rect, Qt::AlignHCenter, "qt\nproject");//字型水平居中
}

64ba84e7baa73d750ec72109ebce7417376.jpg

5、

#include <QPainter>
#include <QFont>
void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QRectF rect(20, 20, 300, 200);

    painter.drawRect(rect);  //為了更直觀地看到字型的位置,我們繪製出這個矩形

    QFont font("宋體", 15, QFont::Bold, true);   //字型,大小,粗體,斜體
    painter.setFont(font);
    painter.setPen(QColor(Qt::red));
    painter.drawText(rect, Qt::AlignHCenter, "qt\nproject");//字型水平居中
    painter.translate(50, 50);
    painter.rotate(90);
    painter.drawText(0, 0, tr("helloqt"));
}

f555ed0b94a164a4824794061e67b5eab7b.jpg