我有一个 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/