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