【发布时间】:2019-06-07 04:36:58
【问题描述】:
我想让 Qt 应用程序绘制一个椭圆(一个圆圈)。我正在使用两个文件设置 - main.cpp 和 ui_mainwindow.h。我在Ui MainWindow 类上定义了QGraphicsView 和QPainter:
class Ui MainWindow {
public:
...
QGraphicsView *radarGraphicsView;
QPainter *radarPainter;
...
我也初始化了 QGraphicsView:
void setupUi(QMainWindow *MainWindow) {
...
radarGraphicsView = new QGraphicsView(centralWidget);
...
我也在同一个类中定义了一个paintEvent:
void paintEvent(QPaintEvent *event) {
radarPainter = new QPainter(radarGraphicsView);
radarPainter->setPen(Qt::green);
radarPainter->drawEllipse(10, 10, 10, 10); }
无论如何,结果我在 QGraphicsView 中看不到任何椭圆被绘制,我假设我应该调用paintEvent,但我在像我这样的设置(Qmake)中没有找到这样的例子。我应该如何调用要绘制的椭圆的paintEvent?
【问题讨论】:
-
您好,您是否尝试按照docs 中的示例进行操作?即在每个事件之后破坏画家。
-
@TrebuchetMS 我确实尝试按照示例进行操作,并且我提交的关于该问题的代码与我的配置最接近。
-
好吧,如果您在每个事件中都调用
new...尝试调用delete radarPainter?除非您在主窗口的其他地方使用radarPainter,否则请将其保留为普通变量。 -
@TrebuchetMS 感谢您的回复,但我很确定这目前并不重要,因为椭圆根本没有被绘制。