【发布时间】:2016-07-15 09:12:12
【问题描述】:
我正在使用 QLabel 在 Qt 5 应用程序中绘制图形。我没有将 QLabel 子类化,而是安装了一个事件过滤器。事件过滤器确实被调用并且在 QLabel 内绘制确实有效。问题是事件过滤器被递归调用,我的 cpu 达到 100% 的使用率。
我在这里做错了什么?
这是我的代码:
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 描述了该问题并发布了相关代码。
-
就像我写的那样,你在问如何解决一些你没有描述的问题。我很确定如果你解释你想要实现什么样的功能,那么解决方案会简单得多。
标签: qt