博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Creatory

Y(^_^)Y I hope someday we can meet on the road =^_^=
   creatory.cublog.cn
关于作者  
姓名:creatory
职业:Embedded-Linux
年龄:22
格言:努力就有可能成功
院校:SDUST
联系我:creatory@mail.com
creatory@163.com

我的分类  




Real-time paintEvent Test
//drawer.h
#include <QWidget>
#include <QString>
class Drawer:public QWidget
{
Q_OBJECT
public:
    Drawer(QWidget *parent=0);
protected:
    void paintEvent(QPaintEvent *event);
    QSize sizeHint()const;
public slots:
    void setCurText(const QString &text);
private:
    QString curText;
};
//drawer.cpp
#include "drawer.h"
#include <QPainter>
#include <QPen>
Drawer::Drawer(QWidget *parent):QWidget(parent)
{
curText="";
}
void Drawer::paintEvent(QPaintEvent *)
{
QPainter painter(this);
int x=width()/2;
int y=height()/2;
painter.drawText(x,y,curText);
}
void Drawer::setCurText(const QString &text)
{
if(curText!=text)
{
curText=text;
update();
}
}
QSize Drawer::sizeHint()const
{
return QSize(100,100);
}
//mainwin.h
#include "drawer.h"
#include <QWidget>
#include <QTextEdit>
class MainWindow:public QWidget
{
Q_OBJECT
public:
    MainWindow();
public slots:
    void setDrawerText();
private:
    QTextEdit *textEdit;
    Drawer *drawer;
};
//mainwin.cpp
#include "mainwin.h"
#include <QVBoxLayout>
MainWindow::MainWindow()
{
textEdit=new QTextEdit;
drawer=new Drawer;
QVBoxLayout *mainlay=new QVBoxLayout;
mainlay->addWidget(drawer);
mainlay->addWidget(textEdit);
setLayout(mainlay);
connect(textEdit,SIGNAL(textChanged()),this,SLOT(setDrawerText()));
}
void MainWindow::setDrawerText()
{
drawer->setCurText(textEdit->toPlainText());
}
//main.cpp
#include <QApplication>
#include "mainwin.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
MainWindow w;
w.show();
return app.exec();
}

 发表于: 2008-05-10,修改于: 2008-05-10 20:47 已浏览30次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.13073

京ICP证041476号