2019独角兽企业重金招聘Python工程师标准>>>
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"));
* 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");//字体水平居中
}
3、QFont类来设置文字字体
#include
#include
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
#include
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"));
}