[Qt]paintEvent未在从QAbstractButton派生的自定义按钮中调用

[Qt]paintEvent未在从QAbstractButton派生的自定义按钮中调用,qt,qt4,paintevent,qabstractbutton,Qt,Qt4,Paintevent,Qabstractbutton,我正在尝试创建一个自定义按钮,它是从“QAbstractbutton”派生的。 我已经超越了这个事件。但是,我的按钮在我的小部件中不可见。我看到的是,即使在我的按钮上调用update/repaint/show之后,也没有调用paintEvent。 这里缺失的链接可能是什么 谢谢 除非对象的宽度和高度非零,否则不会调用对象上的paintEvent。我的猜测(没有任何示例代码,这是一个纯粹的猜测)是,您刚刚创建了一个宽度或高度为0的示例,并希望它能够绘制。请包含一些示例代码,例如,您将自定义按钮添加

我正在尝试创建一个自定义按钮,它是从“QAbstractbutton”派生的。 我已经超越了这个事件。但是,我的按钮在我的小部件中不可见。我看到的是,即使在我的按钮上调用update/repaint/show之后,也没有调用paintEvent。 这里缺失的链接可能是什么


谢谢

除非对象的宽度和高度非零,否则不会调用对象上的paintEvent。我的猜测(没有任何示例代码,这是一个纯粹的猜测)是,您刚刚创建了一个宽度或高度为0的示例,并希望它能够绘制。

请包含一些示例代码,例如,您将自定义按钮添加到小部件的代码片段,等等,谢谢!在这种情况下,我不知道qt对paintEvent()进行了优化。当我的类从QWidget派生时,paintEvent()将正常工作(即使最初没有设置大小)。对于这种情况(QAbstractbutton派生),我必须在构造函数中设置一些宽度和高度才能使其工作!只需在自定义按钮中重新实现sizeHint,并为按钮中包含的数据计算适当的大小