首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2013-01-07 
QtCreator 的ui-treeView加载QFileSystemModel model却不显示大家好:我的UI中有一个TreeView,我想让他显

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
 
 
}

这样也行

热点排行