【问题标题】:Qt painting without clearing the background不清除背景的Qt绘画
【发布时间】:2009-10-29 15:24:01
【问题描述】:

我正在使用 QPainter 在窗口上获取一些图形。不幸的是,每次调用paintEvent() 函数时,都会清除整个窗口。不清零怎么画? IE。如何让之前的绘画事件中的东西保持原样?

我正在使用 Qt4

【问题讨论】:

  • 您使用的是哪个 Qt 版本?

标签: qt background qpainter


【解决方案1】:

由于这两个回复仅针对 Qt3,因此这里是针对 Qt4 的解决方案。你需要打电话

setAttribute(Qt::WA_OpaquePaintEvent);

(例如在构造函数中)遵循文档here

【讨论】:

    【解决方案2】:

    您需要使用setBackgroundMode 设置器设置backgroundModeQt::NoBackground 枚举就是您要搜索的内容。

    【讨论】:

      【解决方案3】:

      在 Qt3 中,从 WidgetFlags enum 设置 Qt::WNoAutoErase 标志,以避免在每次绘制事件时清除窗口。

      您可以通过将其传递给QWidget constructor 来设置此标志。

      【讨论】:

      • Qt 文档说它不再需要。所以他不应该使用它
      • @Patrice:啊,是的 - 在 Qt4 中它不再起作用了。这是一个 Qt3 解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2011-05-12
      • 2013-09-16
      相关资源
      最近更新 更多