以下方法适用于本地化 QPrintDialog:
#include <QtGui/QApplication>
#include <QTranslator>
#include <QPrintDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
if (translator.load("./translations/qt_de.qm")) {
a.installTranslator(&translator);
}
QPrintDialog printdialog;
printdialog.exec();
}
但是当我单击 QPrintDialog 中的“选择文件”按钮(带有三个点)时,会出现文件对话框的英文版本,而不是我想要的德文版本。
此外,控制台上还有一个警告:
KGlobal::locale::Warning 您的全局 KLocale 正在使用有效的主组件而不是假组件重新创建,这通常意味着您在创建主组件之前尝试调用 i18n 相关函数。你不应该这样做,因为它很可能不起作用
我应该去哪里看?
至于这里提到的解决方法:一些 QDialogs 支持 ::DontUseNativeDialog 标志,但 QPrintDialog 不支持。
(在linux上测试过,不知道在其他平台上结果如何)