3

我是 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();
}

我仍然无法获得这些事件。

请帮帮我。

谢谢

4

2 回答 2

3

您需要子类QPushButton化并重新实现paintEvent().

于 2010-02-11T06:13:49.827 回答
0
  1. 子类 QPushButton,例如class MyButton : public QPushButton.... 你似乎错过了公众。

  2. paintEvent 是一种受保护的方法,因此您的公共覆盖将无法正常工作。

  3. 这不称为为 QPushButton 创建委托。您正在做的是对它进行子类化并重新实现它的paintEvent。

于 2010-02-11T13:37:57.233 回答