0

如何在不覆盖paintEvent.

我想在 Qt Designer 生成的另一个小部件内绘制一个小部件,所以我不能覆盖它paintEvent

我试着像这样直接画:

QPainter *painter= new QPainter(ui->drawArea);
painter.drawLine(50,50,50,150);
painter.close();

但 Qt 告诉我QPainDevice是 0 或类似的东西,

我通过创建画家尝试了相同的示例,然后begin()使用(小部件)调用该方法QPaintDevice但同样的问题。

Qt 版本:4.8.6。

4

1 回答 1

2

在 Designer 中使用自定义小部件不是问题。在 Designer 中,将您的小部件添加为任何其他 QWidget 或 QPushButton,具体取决于哪个具有最接近的继承。然后右键单击菜单选择Promote to ...,添加您的MyWidget.h然后将小部件提升到MyWidget重新实现paintEvent()。阅读更多:

http://doc-snapshots.qt.io/4.8/designer-using-custom-widgets.html#promoting-widgets

于 2015-03-22T19:56:39.980 回答