Qt之 QPainter:繪製文字

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

一、基本繪製linux

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

二、控制文字的位置api

F1:drawText字體

/* painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject"));
     * rect:文本所在矩形區域
     * Qt::AlignCenter:對齊方式,由Qt::AlignmentFlag枚舉變量進行定義,不一樣對齊方式也能夠使用|操做符同時使用,這裏還能夠使用Qt::TextFlag定義的其餘一些標誌,好比自動換行等
     *  tr("Qt\nProject"):所要繪製的文字,能夠使用\n來實現換行
    */this

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");//字體水平居中
}

三、QFont類來設置文字字體.net

#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");//字體水平居中
}

五、code

#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"));
}

相關文章
相關標籤/搜索