• 4789阅读
  • 2回复

关于QPainter的事件处理机制 [复制链接]

上一主题 下一主题
离线yangfanxing
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-25
#include <QApplication>
#include <QWidget>
#include <QPainter>
class PainterWidget : public QWidget
{
    protected:
    // 重新定義paintEvent()事件處理
    void paintEvent(QPaintEvent*);//?
};
// 實作事件處理

void PainterWidget::paintEvent(QPaintEvent *event)////?
{
    // 建立QPainter
    QPainter painter(this);
    // 設定筆觸為點狀線
    painter.setPen(Qt::DotLine);
    // 指定x、y、width、height繪製線條
    painter.drawLine(10, 10, 100, 10);
}
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    PainterWidget pWidget;
    pWidget.setWindowTitle("QPainter");
    pWidget.resize(350, 400);
    pWidget.show();
    return app.exec();
}

提问:
1、?处的语法对否?
    void paintEvent(QPaintEvent *event);呢???

2、没有#include <QPaintEvent>类,编译居然也能通过?
    QPaintEvent其父类是QEvent。没了~~~~


3、QPaintEvent事件消息的机制???
   稍微几句话~
谢谢~~~
[ 此帖被yangfanxing在2009-08-25 13:07重新编辑 ]
PHPWind好恶心。。。不想看这种界面。。。
离线dbzhang800

只看该作者 1楼 发表于: 2009-08-25
1. 对
2. 你开头包含了3个头文件了,感兴趣的话,你可以打开三个头文件看看,肯定包含 QPaintEvent 了
3. 感觉这个范围太大了吧
离线dbzhang800

只看该作者 2楼 发表于: 2009-08-25
你补充的只是一个继承关系,和头文件的包含关系没有必然的联系
快速回复
限100 字节
 
上一个 下一个