大家好:
我的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
}
这样也行