如何在QT中获取Buttons的绘制事件

时间:2010-02-11 06:04:16

标签: qt qt4 drawing symbian paint

我是QT的新手, 我尝试了很多搜索如何在QT中获得按钮绘制事件的样本..我没有办法做到这一点..

如何在QT中设置按钮的代理? 如何获得按钮的绘画事件?

我读了这么多文章,它说我们可以获得按钮的绘画事件,我们也可以自定义。 但我没有得到如何得到油漆事件的代码..

我尝试做这个样本,通过子类仍然我没有得到事件。请告诉我,我错了

  class Mybutton:QPushButton
    {
public:
    Mybutton(QObject *parent = 0){}
    void paintEvent ( QPaintEvent * );

    };




void Mybutton::paintEvent(QPaintEvent* Paint)
    {

    Paint->rect();

    }



int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QPushButton *Newbutton = new QPushButton();
    Newbutton->move(20,30);
    Newbutton->show();



    return a.exec();
}

我仍然无法得到这些活动。

请帮助我。

由于

2 个答案:

答案 0 :(得分:3)

您需要继承QPushButton并重新实现paintEvent()

答案 1 :(得分:0)

  1. 子类QPushButton,例如class MyButton : public QPushButton...。你好像想念公众。

  2. paintEvent是受保护的方法,因此您的公共覆盖效果不佳。

  3. 这不称为为QPushButton创建委托。你正在做的是你对它进行细分并重新实现它的paintEvent。