我正在使用QLabel在Qt 5应用程序中绘制图形。我安装了一个事件过滤器,而不是继承QLabel。事件过滤器确实被调用,并且QLabel内部的绘画可以工作。问题是事件过滤器被递归调用,并且我的cpu达到100%的使用率。在QLabel中绘画递归调用paintEvent
我在这里做错了什么?
这里是我的代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label->installEventFilter(this);
}
bool MainWindow::eventFilter(QObject *obj, QEvent *ev)
{
if ((obj == ui->label) && (ev->type() == QEvent::Paint))
{
QPixmap pix(50, 50);
pix.fill(Qt::blue);
ui->label->setPixmap(pix);
}
return false;
}
感谢您的帮助 尼莎·米勒
这是严重问的问题!你正在问如何解决某些神秘问题的不正确的解决方案,并且你甚至没有给出你想要解决什么样的问题。 –
@MarekR为什么这个问题很严重? OP介绍了这个问题并发布了相关的代码。 –
就像我写的,你在问如何解决你没有描述的一些问题的解决方案。我很确定你是否解释了你想要实现哪种功能,结果会更简单一些。 –