这个例子是Linux窗口程序设计 --Qt4精彩实例分析》光盘源码,第七章的代码。
全部代码如下:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDirModel model;
QListView list;
QTreeView tree;
QTableView table;
tree.setModel(&model);
list.setModel(&model);
table.setModel(&model);
tree.setSelectionMode(QAbstractItemView::MultiSelection);
list.setSelectionModel(tree.selectionModel());
table.setSelectionModel(tree.selectionModel());
QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&list,SLOT(setRootIndex(QModelIndex)));
QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&table,SLOT(setRootIndex(QModelIndex)));
QSplitter *splitter = new QSplitter;
splitter->addWidget(&tree);
splitter->addWidget(&list);
splitter->addWidget(&table);
splitter->setWindowTitle(QObject::tr("Model/View"));
splitter->show();
return app.exec();
}
发现一个怪问题,如果使用VS普通权限编译,则可以显示网络映射盘符。如果使用VS管理员权限(在VS的标题栏会显示(Administror)状态)编译(如果程序要操作某些特殊系统文件/注册表的话,就不得不如此。特别是Project->properties->Configuration->Manifest File->Enable UAC设置Yes,UAC Excution Level设置requireAdministrator以后,就一定如此),就无法显示网络映射盘符了。莫名其妙啊,百思不得其解。不知道各位使用MinGW编译的话,是怎么解决UAC权限问题的?
我的环境:VS2008 SP1 + QT4.86 + WIN7 x64