读书人

qt 中部分文字无法实现动态语言切换解

发布时间: 2014-01-05 18:22:56 作者: rapoo

qt 中部分文字无法实现动态语言切换
在自己的qt项目中有中英两种语言可以随时进行切换,但现在发现有部分文字无法切换成中文。比如下面这段代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QTranslator trans;
trans.load("gui_zh");
QApplication::installTranslator(&trans);
ui->retranslateUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("open"), QDir::currentPath(), "*.cpp");
}

红色部分是打开一个对话框来获取某个文件的路径,“open”这个字符串就是怎么都翻译不成中文,这样的例子在我的项目中有很多,有哪位能告诉我这是怎么会事,有没有解决办法?
注:我已经生成了指定的.qm文件
[解决办法]
首先你要写的翻译文件的类或是文件都必须要有Q_OBJECT,首先确认你的*.qm文件里面都有所有的英文翻译,最好把你的翻译文件(*.qm)文件加入程序的资源中,然后在主程序中加入
QTranslator* translator = new QTranslator(0);
translator->load(":/*.qm");
在用QApplication的对象调用app
app.installTranslator(translator);
希望对你有帮助
[解决办法]

引用:
在自己的qt项目中有中英两种语言可以随时进行切换,但现在发现有部分文字无法切换成中文。比如下面这段代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QTranslator trans;
trans.load("gui_zh");
QApplication::installTranslator(&trans);
ui->retranslateUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("open"), QDir::currentPath(), "*.cpp");
}

红色部分是打开一个对话框来获取某个文件的路径,“open”这个字符串就是怎么都翻译不成中文,这样的例子在我的项目中有很多,有哪位能告诉我这是怎么会事,有没有解决办法?
注:我已经生成了指定的.qm文件


强烈推荐你看一下这个:http://blog.sina.com.cn/s/blog_a6fb6cc90101f89v.html
用到切换部分的经典界面:http://bbs.csdn.net/topics/390614347

读书人网 >QT开发

热点推荐