您的位置:首页 > 编程语言 > Qt开发

一步步学Qt,第六天-QPainter应用

2011-08-30 07:48 225 查看

一步步学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置空
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: