读书人

QtCreator 的ui-gt;treeView加载QFileSy

发布时间: 2013-01-07 10:02:25 作者: rapoo

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


}

这样也行

读书人网 >QT开发

热点推荐