Qt工作筆記-Qt文件筆記-QPainter::drawText寫文字並且居中
阿新 • • 發佈:2018-12-09
官方解析
畫給定的text並且從指定的position。 這個函式不能處理換行符號(\n),不能將文字分割成多行,也不能分行展示。使用QPainer::drawText()的過載函式可以繪製一個多邊形來代替你先實現的行號功能,或者將text包裝下,也能實現!
博主例子:
居中文字,程式執行截圖如下:
原始碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); protected: void paintEvent(QPaintEvent *event)Q_DECL_OVERRIDE; private: Ui::Widget *ui; }; #endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.cpp
#include "widget.h" #include "ui_widget.h" #include <QPainter> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::paintEvent(QPaintEvent *event) { Q_UNUSED(event) QPainter painter(this); painter.drawText(0,0,this->width(),this->height(),Qt::AlignCenter,"123ABC一二三"); }