我是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();
}
我仍然无法得到这些活动。
请帮助我。由于
答案 0 :(得分:3)
您需要继承QPushButton
并重新实现paintEvent()
。
答案 1 :(得分:0)
子类QPushButton,例如class MyButton : public QPushButton...
。你好像想念公众。
paintEvent是受保护的方法,因此您的公共覆盖效果不佳。
这不称为为QPushButton创建委托。你正在做的是你对它进行细分并重新实现它的paintEvent。