Red de conocimiento informático - Material del sitio web - Cómo cambiar el texto de los cuadros de diálogo estándar de Qt

Cómo cambiar el texto de los cuadros de diálogo estándar de Qt

Los textos predeterminados de los cuadros de diálogo estándar integrados de QT, QFontDialog, QColorDialog y QMessageBox, están todos en inglés, y los textos predeterminados de los menús contextuales de QLineEdit y QTextEdit también están en inglés.

¿Cómo cambiar texto a chino u otros idiomas?

La solución es la siguiente:

La solución para chino simplificado es abrir la traducción en el directorio de instalación de Qt y buscar qt_zh_CN.qm y qt_zh_CN.ts.

Podemos usar qt_zh_CN.qm directamente. Si efectivamente hay algunas traducciones incompletas, podemos abrir qt_zh_CN.ts y regenerar .qm después de la traducción. Si tiene una traducción incompleta, simplemente abra qt_zh_CN.ts y regenere el archivo .qm.

Es decir: cargar traducción/qt_zh_CN.qm en QTranslator.

Los métodos para otros lenguajes son similares.

Código fuente de referencia:

#include "mainwindow.h"

#include QApplicationgt

#include QTranslatorgt; ;

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

//Carga el archivo de traducción al chino del cuadro de diálogo estándar Qt

QTranslator tran;

bool ok = tran.load(" qt_zh_CN.qm", " C:\\qt\\4.8.5_VS2010\\\translations\\\"); // Nota, esta es una ruta absoluta, se recomienda copiar el .qm al directorio del proyecto y luego usar una ruta relativa.

a.installTranslator(amp;tran);

//Carga el archivo de traducción de la interfaz definida por el usuario

Usuario de QTranslator;

ok = user.load("user_zh.qm", ":/");

a.installTranslator(amp;user);

//Establece el tamaño del texto global, no es obligatorio , utilice según sea necesario

QFont font = a.font();

font.setPointSize(9);

a.setFont(font);

Ventana principal w;

w.show();

devolver a.exec();

}

Resultado final:

Si el software quiere cambiar dinámicamente entre diferentes idiomas, debe definir una función global para llamar.

#include "mainwindow.h"

#include lt;QApplicationgt;

#include lt;QTranslatorgt;

QTranslator g_tran; //Debe configurarse como una variable global; si es una variable local, la configuración fallará.

void setLanguage(int lan)//Función global, se puede llamar desde otros archivos

{

bool ok = false;

if (lan == 1)//Chino

{

ok = g_tran.load("qt_zh _CN.qm", ":/lan/"); use el archivo de recursos Qt, copie el archivo .qm a la ruta/lan del proyecto

}

else if (lan == 2)//English

{

ok = g_tran.load("", ":/lan/");

}

QCoreApplication::installTranslator(amp;g_tran);

// O escribe qApp-gt; installTranslator(amp; g_tran);

}

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

setLanguage(1); // Llamar a la función global

MainWindow w;

w.show ();

devolver a.exec();

}