Qt怎样才能显示标准的浏览目录的对话框?

C#等可以显示这样的标准对话框:
选择目录
但是Qt的QFileDialog无论是使用

FileDialog->setFileMode(QFileDialog::Directory);
FileDialog->setOption(QFileDialog::ShowDirsOnly, true);

还是

QFileDialog::getExistingDirectory()

都是显示这种对话框:
选择文件夹

难道Qt本身不支持标准的“选择目录”对话框?如果这样,有没有办法让Qt显示标准的“选择目录”对话框?(至少在Windows平台)

阅读 6.3k
2 个回答

你用xp兼容模式下运行试一试

新手上路,请多包涵

的确不行,都试过了。

在Windows下,我用QT5/混合WTL解决。

#pragma comment(lib,"User32.lib")
#pragma comment(lib,"Gdi32.lib")
#pragma comment(lib,"Comdlg32.lib")

#ifdef Q_OS_WIN
#include <atlbase.h>
#include <atlapp.h>
#include <atlgdi.h>
#include <atldlgs.h>
#endif

QString strDir
    CFolderDialog fldDlg ( NULL, _T("Select a dir"),
                           BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE );


      if ( IDOK == fldDlg.DoModal() )
          strDir = QString::fromUtf16((ushort *)fldDlg.m_szFolderPath);
          qDebug() << "Dir:" << strDir;

反正WTL在Windows下,根本不占用空间,毫无影响。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题