Qt之 QPainter:繪製文字
阿新 • • 發佈:2021-02-20
http://shouce.jb51.net/qt-beginning/17.html
1、基本繪製
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawText(100, 100, "qter.org_yafeilinux");
}
2、控制文字的位置
F1:drawText
/* painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject"));
* 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");//字型水平居中 }
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");//字型水平居中 }
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"));
}