Qt 在 QT Designer 创建的小部件上绘制
Qt paint on a widget created by QT Designer
如何在不覆盖 paintEvent
的情况下在小部件上绘画。
我想在 Qt Designer 生成的另一个小部件内的小部件上绘画,所以我无法覆盖它 paintEvent
。
我试过直接这样画:
QPainter *painter= new QPainter(ui->drawArea);
painter.drawLine(50,50,50,150);
painter.close();
但是 Qt 告诉我 QPainDevice
是 0 或类似的东西,
我通过创建画家尝试了相同的示例,然后使用 QPaintDevice
(小部件)调用 begin()
方法但同样的问题。
Qt 版本:4.8.6.
在 Designer 中使用自定义小部件不是问题。在 Designer 中,将您的小部件添加为任何其他 QWidget 或 QPushButton,具体取决于哪个具有最接近的继承。然后使用右键单击菜单 select Promote to ...
,添加您的 MyWidget.h
,然后将小部件提升到 MyWidget
并重新实现 paintEvent()
。阅读更多:
http://doc-snapshots.qt.io/4.8/designer-using-custom-widgets.html#promoting-widgets
如何在不覆盖 paintEvent
的情况下在小部件上绘画。
我想在 Qt Designer 生成的另一个小部件内的小部件上绘画,所以我无法覆盖它 paintEvent
。
我试过直接这样画:
QPainter *painter= new QPainter(ui->drawArea);
painter.drawLine(50,50,50,150);
painter.close();
但是 Qt 告诉我 QPainDevice
是 0 或类似的东西,
我通过创建画家尝试了相同的示例,然后使用 QPaintDevice
(小部件)调用 begin()
方法但同样的问题。
Qt 版本:4.8.6.
在 Designer 中使用自定义小部件不是问题。在 Designer 中,将您的小部件添加为任何其他 QWidget 或 QPushButton,具体取决于哪个具有最接近的继承。然后使用右键单击菜单 select Promote to ...
,添加您的 MyWidget.h
,然后将小部件提升到 MyWidget
并重新实现 paintEvent()
。阅读更多:
http://doc-snapshots.qt.io/4.8/designer-using-custom-widgets.html#promoting-widgets