c++ - 重绘 QTreeWidget

标签 c++ qt qt5 qtreewidget

我有一个基于 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 的类作为QTreeWidgetviewport()这是必须更新的小部件,因此在您的情况下,解决方案是:

viewport()->update();

如果你想从另一个线程调用更新你可以使用QMetaObject::invokeMethod() :

QMetaObject::invokeMethod(viewport(), "update", Qt::QueuedConnection)

关于c++ - 重绘 QTreeWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53589796/

相关文章:

c++ - 无法在 C++ 中获取包含空格的输入

c++ - 如何复制 boost::filesystem::directory_iterator?

c++ - 在字符串 C++ 中查找标点符号

c++ - QQuickImageProvider::requestImage图像缩放,如何处理

c++ - 在 Qvector 中读取文件后存储数据

c++ - 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

c++ - 简单c++命令行工具的安装脚本,教程?

qt - 在 QTableWidget 中,更改所选行的文本颜色

c++ - 连接到主机错误

c++ - 非阻塞 worker - 中断文件复制