c++ - QT绘图不删除widget

标签 c++ qt

我有一个 QWidget 的派生类。在构造函数中我说:

setPalette(QPalette(QColor(250,250,200)));
setAutoFillBackground(true);

然后在我的小部件的 paintEvent() 中我说:

QPainter painter(this);
painter.drawRect(1,2,3,4);

还有一个 updateNow() 槽...它只调用 update()。如何确保我的调色板在更新调用后不会被删除?

最佳答案

我对以下方面没有任何问题:

#include <QApplication>
#include <QWidget>
#include <QPalette>
#include <QPaintEvent>
#include <QPainter>

class Test : public QWidget
{
public:
  Test()
  {
    setPalette(QPalette(QColor(250, 250, 200)));
    setAutoFillBackground(true);
  }

protected:
  virtual void paintEvent(QPaintEvent*)
  {
    QPainter painter(this);
    painter.drawRect(10, 20, 30, 40);
  }

  virtual void mousePressEvent(QMouseEvent*)
  {
    update();
  }
};

int main(int argc, char* argv[])
{
  QApplication app(argc, argv);

  Test myTest;
  myTest.show();

  return app.exec();
}

矩形绘制,点击后停留,触发更新。你在看什么?

关于c++ - QT绘图不删除widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1713790/

相关文章:

c++ - Lua与Embedded Lisp以及其他潜在候选人。用于基于集合的数据处理

qt - 如何使用委托(delegate)在 QHeaderView 部分中绘制像素图?

c++ - 如何在 Qt 信号中使用对抽象类的引用?

c++ - 在 omp 关键部分内引发 C++ 异常

c++ - gtk 配置错误 - 找不到包 'atk-bridge-2.0'

c++ - 智能指针 + "this"被认为是有害的?

c++ - C++中这两个参数有什么区别?

c++ - 使用 QT 中的输入更改拨号 slider 的值?

c++ - 如何为继承自QFrame的小部件设置边框?

qt - 在 EGL 上渲染时的 OpenGL 撕裂效果