作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个基于 QTreeWidget 的简单类。在某些情况下(当列之一的值更新时),我需要重新绘制它。我有一个函数,当我需要更新我的小部件时调用:
void TreeWidget::updated()
{
/* some actions with cells */
/* here need to repaint widget */
this->update();
/* also I'm tried this->repaint(); */
}
但是行 this->update();
(或 this->repaint();
)没有给出任何结果。小部件仅在我单击时重绘。
那么我该如何重绘我的小部件呢?
最佳答案
继承自 QAbstractScrollArea
的类作为QTreeWidget
有viewport()
这是必须更新的小部件,因此在您的情况下,解决方案是:
viewport()->update();
如果你想从另一个线程调用更新你可以使用QMetaObject::invokeMethod() :
QMetaObject::invokeMethod(viewport(), "update", Qt::QueuedConnection)
关于c++ - 重绘 QTreeWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53589796/
我是一名优秀的程序员,十分优秀!