【发布时间】:2015-06-26 00:30:57
【问题描述】:
我有一个父 QGLWidget,它有一个只有一个 QSlider 的子 QWidget。子部件的初始化发生在父部件的构造函数中:
GLWidget::GLWidget(const QGLFormat& format, TimeControllers time_controllers,
ViewControllers view_controllers, TerrainControllers terrain_controllers, TemperatureEditDialog * temp_edit_dlg,
Actions * render_actions, Actions* overlay_actions, Actions * control_actions, Actions * show_actions,
QWidget * parent) : m_latitude_controller(this) {
...
m_latitude_controller 是有问题的 QWidget。
第一次加载时,它看起来不错:
但是,如果我使用滑块,它会变成这样:
长话短说,似乎在重绘事件中,QWidget 不是从头开始重绘,而是在之前的内容上绘制。有什么想法吗?
【问题讨论】:
-
Plain QWidgets over QGLWidgets 从未得到正确支持。你可以迁移到 Qt 5 和 QOpenGLWidget 吗?
-
了解您的 Qt 版本会很有用。在 Qt 5.4 及更高版本上,您应该使用
QOpenGLWidget,这应该可以解决您的问题。 -
非常感谢@peppe。这确实是因为我使用的是 Qt