保持自定义QAbstractItemModel在QMainWindow的生命周期中保持活动状态

时间:2017-12-03 19:56:50

标签: c++ qt static qt5

我有两个自定义模型,我希望在我的主窗口的生命中保持活力。两者都是根据自定义树模型的Qt示例http://doc.qt.io/qt-5/qtwidgets-itemviews-simpletreemodel-example.html构建的。

这些模型包含名为“local”和“remote”的文件夹/目录层次结构。

我能以这样的方式实例化这些,我可以在主窗口的其他成员函数中引用它们吗?如何/我可以将它们静态化为MainWindow,还是有更好的方法?

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // Generate models.
    TreeModel *model_remote = new TreeModel(MainWindow::load_file_list());
    TreeModel *model_local = new TreeModel(localDirList);

    // Display models in a QTreeView.
    ui->treeView_remote->setModel(model_remote);
    ui->treeView_local->setModel(model_local);
}

void MainWindow::some_function()
{
    // Here is where I would like to work with my model(s).
}

1 个答案:

答案 0 :(得分:0)

Per drescherjm上面的评论:

ui->treeView_remote->model()

是指向模型的指针。