MyException - 我的异常网
当前位置:我的异常网» QT开发 » QtCreator 的ui->treeView加载QFileSystemModel

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

www.MyException.Cn  网友分享于:2013-01-08  浏览:26次
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
 
 
}

这样也行

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有