一步步学Qt,第六天-QPainter应用
一步步学Qt,第六天-QPainter应用
看了QPainter,看了一下,不过现在还有一点懵,一开始都不知道如何下手去做,现在好歹把code写出来了,不过,在QRect的定位上,真的很麻烦,因为这个要相对显示屏或者窗体,我一直在想有没有一个可以忽略这两个的办法来定位,现在还在思考中,看看这个程序:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QPainter> #include <cstdlib> #include <QRect> #include <QKeyEvent> #include <QPen> #include <QFont> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); text = ""; setMinimumSize(400,300); setMaximumSize(400,300); } MainWindow::~MainWindow() { delete ui; } void MainWindow::paintEvent(QPaintEvent *) { QPainter p(this); QPen pen; pen.setColor(Qt::red); p.setPen(pen); QFont font("Arial",14,QFont::Normal,true); font.setItalic(true); p.setFont(font); QRect rect(0,10,400,150); p.drawText(rect,Qt::AlignCenter,text); this->update(); } void MainWindow::keyPressEvent(QKeyEvent *e) { if (e->key() == Qt::Key_Return){ text = ui->lineEdit->text(); ui->lineEdit->setText(""); } }
运行效果:
程序刚启动的时候
在QLineEdit中写入数据
回车事件之后,把之前QlineEdit中的数据通过QPainter的Drawtext绘制,且把QLineEdit置空