- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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);
}
最佳答案
我同意你最后的说法,即你的系统设置中的某些地方可能有问题。
我使用以下小示例应用程序进行测试:
// standard C++ header:
#include <iostream>
#include <string>
// Qt header:
#include <QApplication>
#include <QFileDialog>
#include <QGridLayout>
#include <QGroupBox>
#include <QLabel>
#include <QLineEdit>
#include <QMainWindow>
#include <QPushButton>
using namespace std;
int main(int argc, char **argv)
{
cout << QT_VERSION_STR << endl;
// main application
#undef qApp // undef macro qApp out of the way
QApplication qApp(argc, argv);
// setup GUI
QMainWindow qWin;
QGroupBox qBox;
QGridLayout qGrid;
QPushButton qBtn(QString::fromLatin1("File Dialog"));
qGrid.addWidget(&qBtn, 0, 0, 1, 2);
QLabel qLbl(QString::fromLatin1("File:"));
qGrid.addWidget(&qLbl, 1, 0);
QLineEdit qTxt;
qGrid.addWidget(&qTxt, 1, 1);
qBox.setLayout(&qGrid);
qWin.setCentralWidget(&qBox);
qWin.show();
// install signal handlers
QObject::connect(&qBtn, &QPushButton::clicked,
[&qTxt](bool) {
#if 0 // how I do it usually...
string file = QFileDialog::getOpenFileName(&qTxt,
QString::fromUtf8("Open File"),
QString(),
QString::fromUtf8("Text File (*.txt);;All Files (*)")
).toUtf8();
qTxt.setText(QString::fromUtf8(file.c_str()));
#else // using QString only...
QString file = QFileDialog::getOpenFileName(&qTxt,
QString::fromUtf8("Open File"),
QString(),
QString::fromUtf8("Text File (*.txt);;All Files (*)")
);
qTxt.setText(file);
#endif
});
return qApp.exec();
}
我在 Windows 10(64 位)上使用 VS2013、Qt 版本 5.6 编译了它。
我在我的软件 std::string
中使用 UTF-8 编码。 (因此,字符串可以在不依赖于 Qt 或任何其他 GUI 的库中使用。)但是,我对 QString
进行了相同的测试。
关于c++ - QFileDialog unicode目录不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680635/
我正在尝试为必须对给定文件执行某些操作的程序编写 GUI。它的逻辑是: 1) 程序从创建一个文本字段和一个按钮开始。 2) 如果我点击按钮,我可以选择一些.exe 文件。如果选择文件,其路径将设置为与
我是 QT 的新手。目前在我的项目中我实现了 QFileDialog . 在我的用例中:每当用户选择一个文本文件时,它都会执行 functionA .但是,我发现如果在文件对话框中单击取消,funct
我尝试了以下操作来打开一个应该显示用户主目录的文件对话框: QString fileName = QFileDialog::getOpenFileName(this,
我试图在我的 PySide2 应用程序中打开一个文件,但文件对话框总是在主窗口下方打开,并在启动器中显示为另一个应用程序。应用程序的名称是“门户”。 我看到other answers其中解决方案是将主
我想创建一个 QFileDialog 的子类,它将用于仅打开具有某些特定内容的目录。我可以设置我自己的代理模型来处理文件列表的行为,但是如何禁用/启用确定按钮? 我必须创建自己的小部件吗? 最佳答案
1)我想获取文件夹监控应用程序的文件夹名称.. 有没有办法可以过滤掉使用 QFileDialog 显示的特定文件夹(例如,我不希望我的文档显示在文件对话框中)。 2)我不希望用户选择驱动器。默认情况下
我想建立一个类似于 QFileDialog::getExistingDirectory() 的对话框仅当所选目录包含某些文件时才启用确定按钮。 我知道我无法通过 QFileDialog 实现这一目标,
我使用下面的代码来构建文件名的 qstringlist: QStringList filenames = QFileDialog::getOpenFileNames(this,"",QDir::cur
QFileDialog 在我的代码中使用如下: QFileDialog fileDlg; fileDlg.setFileMode(QFileDialog::AnyFile); fileDlg.setV
我想打开一个包含所有支持的图像格式的 QFileDialog.getOpenFileName(我可以用来实例化 QIcon 的所有文件类型) 我已经知道我可以使用 QImageReader.suppo
关闭 QFileDialog.getSaveFileName 时遇到问题。如果我选择取消而不继续保存文件,我的程序就会崩溃。 我知道该语句将始终为 True,因为 getSaveFileName()
我想将选定文件的位置存储为 Python 中的字符串。我正在尝试使用 QFileDialog 来完成此任务,我有: self.filedialog = QtGui.QFileDialog(self)
我遇到了一个问题,当我选择不保存文件并单击系统窗口上的“取消”时,程序将崩溃。这是我收到的错误: Traceback (most recent call last): File "BasicEmail
我有一个 QFileDialog 对象,我需要用户在其中选择一个目录 QFileDialog dlg(this, tr("Select directory")); dlg.setDirectory(c
我同时使用 QFileDialog getOpenFileName 和 getSaveFileName。我在网络上有一个文件(连接速度慢),我使用 getOpenFileName 加载它。然后,如果我
我在 Qt 中有一个用于保存文件的 QFileDialog。 它不是 smmiting 信号。我通过连接它 QFileDialog diag(this); ... connect( d
我正在开发一个项目,我正在使用 Python 和 PyQT4 进行开发。我偶然发现了 QFileDialog 的一个有点奇怪的行为,在我的 IDE (Eclipse) 中运行项目时不会发生这种行为。
我想使用 QFileDialog 获取新目录的名称,我将在其中创建几个配置文件。 如果目录名不包含扩展部分就好了。我如何强制用户不提供带有 filename.extension 的 QFileDial
我在 Qt 5.2 中使用 QFileDialog 时遇到一点问题。当我打开对话框时,对话框会出现,但不会将任何选定的文件发回给我。在下面的代码示例中,“selectedFiles.at(0)”没有提
我正在尝试使用 QFileDialog 获取文件路径,编译很顺利,但是当我从应用程序打开对话框时,会弹出此窗口: 看起来路径中缺少字母“á”。 即使我尝试从快速访问中打开桌面,它也会弹出(顺便说一句。
我是一名优秀的程序员,十分优秀!