使用QT应用程序翻译本机OS FileDialog
translate a native OS fileDialog with Qt application
我想使用本机OS组件将我的qfiledialog转换为与当前OS语言语言不同的特定语言。
QFileDialog::DontUseNativeDialog
选项允许翻译QT小部件,但这是一个旧的设计,如果可能的解决方案,我不喜欢使用它。
我找到了以下内容:
QFileDialog d;
d.setLabelText( QFileDialog::Accept,tr("Open") );
d.setLabelText( QFileDialog::Reject,tr("Cancel") );
d.setLabelText( QFileDialog::FileName,tr("File name") );
d.setLabelText( QFileDialog::LookIn,tr("Look in") );
但这尚未翻译"取消"按钮。它仅适用于"开放"answers"文件名"标签。
有人可以告诉我如何为"取消"修复它。按钮或它有什么问题?
欢迎任何其他解决方案。
您没有做错任何事情。目前,它在QT中有些错误(BugTracker:QTBUG-44112(。问题是,QT使用Ifiledialog接口与本机OS文件对话框进行通信。该界面不允许更改拒绝按钮的标签。这是此本机对话框的QT代码处理标签:
void QWindowsNativeFileDialogBase::setLabelText(QFileDialogOptions::DialogLabel l, const QString &text)
{
wchar_t *wText = const_cast<wchar_t *>(reinterpret_cast<const wchar_t *>(text.utf16()));
switch (l) {
case QFileDialogOptions::FileName:
m_fileDialog->SetFileNameLabel(wText);
break;
case QFileDialogOptions::Accept:
m_fileDialog->SetOkButtonLabel(wText);
break;
case QFileDialogOptions::LookIn:
case QFileDialogOptions::Reject:
case QFileDialogOptions::FileType:
case QFileDialogOptions::DialogLabelCount:
break;
}
}
如您所见,试图设置拒绝按钮的标签(或其他选项(只是被忽略。老实说,这不是QT的最佳解决方案。他们至少可以实现Qwarning((或一些东西告诉我们,这是毫无意义的。
无论如何,此错误很旧,已分配给QT开发人员,尚未关闭,但优先级较低。
我知道,不是您想要的答案。
相关文章:
- "ostream &os"有什么用?
- libprotobuf 检查在 Mac OS 上执行程序时失败
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何在 MAC OS c/c++ 中阻止 USB 存储设备
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 在 c++ 中检查 Windows OS 服务器版本
- OS X: ld: 找不到 -lstdc++ 的库
- Python os.system() 返回错误值
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- const 如何防止写入特定内存 [Clang, Mac OS]
- 旧C++代码中的目录查找导致 OS X Catalina 10.15 中的目录错误
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- 在 Mac OS 中将 QT 与 CMAKE 集成
- Homebrew OS X OpenCV - 在另一台Mac上运行时寻找dylib
- 使用C/C++访问OS X密钥链
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- VK_ERROR_INCOMPATIBLE_DRIVER with Mac OS and Vulkan MoltenVK
- 无法在 OS X Sierra 上安装 boost
- 使用QT应用程序翻译本机OS FileDialog