ListView未更新

时间:2011-12-12 11:53:08

标签: c++ qt

我应该如何强制查看更新?我的listView没有更新,只有在我按下显示/隐藏按钮(显示/隐藏此视图)后,我的对话框才会更新视图。

void No_Files_Match_Regex_Dialog::show_files(bool show)
{
    current_selection_model_->clear();
    if (show) {
        current_selection_model_->set_entries(*(caller_->current_selection()));
        listView->setModel(current_selection_model_);
        listView->setVisible(show);
        showFilesBtn->setText("Hide Files");
    } else {
        listView->setVisible(false);
        showFilesBtn->setText("Show Files");
    }
}

#include <QtDebug>
void No_Files_Match_Regex_Dialog::another_selection()
{
    this->hide();
    current_selection_model_->clear();
    //caller_->current_selection().clear();
    //qDebug() << "Last action: " << caller_->last_add_action_;
    caller_->last_add_action_->trigger();
    auto tmp = caller_->current_selection();
    if (tmp) {
        current_selection_model_->set_entries(*tmp);
    }
}

1 个答案:

答案 0 :(得分:0)

你可以做到

QApplication::processEvents();

处理在事件队列中等待的事件(例如重绘事件)。

如果此命令本身不够,则可以执行

listView->update();

listView->viewport()->update;

代替或在致电processEvents()

之前