一步步学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置空


posted @ 2011-08-30 07:48  Podevor  阅读(356)  评论(0编辑  收藏  举报