【发布时间】:2017-03-08 19:47:49
【问题描述】:
我正在尝试使用 QFileDialog 获取文件路径,编译正常,但是当我从应用程序打开对话框时,会弹出此窗口:
路径中似乎缺少字母“á”。
即使我尝试通过快速访问打开桌面,它也会弹出(顺便说一句。我使用的是 windows 10 64 位)
Qt 版本:5.7.0
编译器:Microsoft Visual C++ 编译器 14.0 (amd64)
有人可以帮我解决吗?
这是我的代码:
// Header:
#include <QMainWindow>
#include <QLineEdit>
#include <QFileDialog>
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionOpen_triggered()
{
QString file = QFileDialog::getOpenFileName(this, tr("Open ui file"), "c://", tr("Qt UI Files (*.ui)"));
ui->lineEdit->setText(file);
}
【问题讨论】:
-
我刚刚创建了一个目录
QAdrián并测试了我的一个Qt 应用程序是否能够加载该文件。它做了。我可以做一个小示例应用程序。 -
谢谢,但我什至无法使用对话框打开路径中包含 unicode 字符的任何目录。我猜问题出在某些系统设置或类似的东西上。
-
请用一个完整的例子进行演示,并说明您使用的是什么Qt版本,以及使用什么编译器。
-
这里有完整的应用程序,与Qt creator @KubaOber 生成的默认应用程序基本相同
-
@AdriánKálazi 我对
QFileDialog::getOpenFileName()中使用的本机文件对话框有点怀疑。 (我记得大多数win32 API函数有两种风格-一种带有字符,一种带有宽字符。在您的情况下,第一种风格可能由于á的编码错误或丢失而失败。)您是否尝试使用选项QFileDialog::DontUseNativeDialog?
标签: c++ qt unicode qfiledialog