• 5870阅读
  • 7回复

[讨论]getOpenFileName奇怪的问题 [复制链接]

上一主题 下一主题
离线gerryleeke
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-07
关键词: QT4QFileDialog
QString directory = QFileDialog::getOpenFileName(this,
                                 tr("select file"), QDir::currentPath());


在linux下为什么每次都是可执行文件的当前路径,而不是最后一次打开的路径?
可windows下是最后一次的路径的。
离线dbzhang800

只看该作者 1楼 发表于: 2012-08-07
恩,确实比较奇怪。如果你说的属实的话,应该就是windows版存在bug了。
离线uidab

只看该作者 2楼 发表于: 2012-08-07
回 楼主(gerryleeke) 的帖子
windows下也应该是可执行文件的当前路径,可能你这是偶然的bug。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线jdwx

只看该作者 3楼 发表于: 2012-08-07
回 楼主(gerryleeke) 的帖子
QString directory = QFileDialog::getOpenFileName(this,
                                 tr("select file"), QDir::currentPath());
你设置了目录,红色的部分,按照你的要求,对话框把你app的目录作为当前目录。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dbzhang800

只看该作者 4楼 发表于: 2012-08-08
Re:回 楼主(gerryleeke) 的帖子
引用第3楼jdwx于2012-08-07 19:35发表的 回 楼主(gerryleeke) 的帖子 :
QString directory = QFileDialog::getOpenFileName(this,
                                 tr("select file"), QDir::currentPath());
你设置了目录,红色的部分,按照你的要求,对话框把你app的目录作为当前目录。

应用程序所在目录,和程序的当前工作目录 还是不同的。
离线gerryleeke

只看该作者 5楼 发表于: 2012-08-08
回 4楼(dbzhang800) 的帖子
Windows下:
  1. qDebug()<<"1"<<QDir::currentPath();
  2.     QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"),
  3.                                                     QDir::currentPath(),
  4.                                                     tr("file (*.xml)"));
  5.     qDebug()<<"2"<<QDir::currentPath();

我在前后输出currentPath也是应用程序的路径,可是打开的对话框进去的路径却是上次访问的路径。
在网上查了下,说是缺省dir的话是到上次打开的路径的。也就是说这里的QDir::currentPath()不起作用,BUG了?

离线gerryleeke

只看该作者 6楼 发表于: 2012-08-08
回 5楼(gerryleeke) 的帖子
linux下不填dir的话打开的也还是应用程序当前目录,搞不懂了  = =!
离线ws_wll
只看该作者 7楼 发表于: 2012-08-08
我的win7每次打开都是我传进去的路径,为此我还专门设置了个变量来记录上次打开的路径。
快速回复
限100 字节
 
上一个 下一个