当前位置: 代码迷 >> QT开发 >> QtCreator 的ui->treeView加载QFileSystemModel model却不显示解决方法
  详细解决方案

QtCreator 的ui->treeView加载QFileSystemModel model却不显示解决方法

热度:323   发布时间:2016-04-25 04:13:08.0
QtCreator 的ui->treeView加载QFileSystemModel model却不显示
大家好:
   我的UI中有一个TreeView,我想让他显示本地所有磁盘文件,具体代码如下:

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

    //开始加载本地文件系统
    QFileSystemModel model;
    model.setRootPath("C:");
    ui->treeView->setModel(&model);
    ui->treeView->showColumn(1);

    // Demonstrating look and feel features
    treeView->setAnimated(false);
    treeView->setIndentation(20);
    treeView->setSortingEnabled(true);

    treeView->setWindowTitle(QObject::tr("Dir View"));

    #if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5)
        ui->treeView->showMaximized();
    #else
        ui->treeView->resize(640, 480);
        ui->treeView->show();
    #endif


}

但是当主界面显示的时候,TreeView并未显示,这是怎么回事?
------解决方案--------------------
你的那个model不是new出来的,空间是在栈里面,这个函数运行完,model的空间就被释放了,当然显示不出来了,你应该用一个指针然后去New一个:
QFileSystemModel *model = new QFileSystemModel ;
理论上这样就可以了。
------解决方案--------------------
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    //开始加载本地文件系统
    static QFileSystemModel model;
    model.setRootPath("C:");
    ui->treeView->setModel(&model);
    ui->treeView->showColumn(1);
 
    // Demonstrating look and feel features
    treeView->setAnimated(false);
    treeView->setIndentation(20);
    treeView->setSortingEnabled(true);
 
    treeView->setWindowTitle(QObject::tr("Dir View"));
 
    #if defined(Q_OS_SYMBIAN) 
------解决方案--------------------
 defined(Q_WS_MAEMO_5)
        ui->treeView->showMaximized();
    #else
        ui->treeView->resize(640, 480);
        ui->treeView->show();
    #endif
 
 
}

这样也行
  相关解决方案