赞
踩
我之前有个qt5.12.2切换语言的博客,后来写QML的时候也有个切换语言的功能,有个动态设置语言的功能:
- import QtQuick 2.4
- import QtQuick.Window 2.2
- import QtQuick.Controls 2.2
- import QtQuick.Layouts 1.12
-
- Item {
- visible: true
- width: 1920
- height: 1080
-
- //property var text_de : [qsTr("完成"),qsTr("删除")]
-
- Text {
- id:delete_text;
- color: "#ffffff"
- text: qsTr("完成")
- font.pixelSize: 30
- MouseArea {
- anchors.fill: parent;
- onClicked: {
- delete_text.text = qsTr("删除")
- }
- }
- }
-
-
- }
我使用这个代码的时候发现,delete_text.text = qsTr("删除")居然依旧是中文,后来我把代码改成以下这样才生效:
- import QtQuick 2.4
- import QtQuick.Window 2.2
- import QtQuick.Controls 2.2
- import QtQuick.Layouts 1.12
-
- Item {
- visible: true
- width: 1920
- height: 1080
-
- property var text_de : [qsTr("完成"),qsTr("删除")]
-
- Text {
- id:delete_text;
- color: "#ffffff"
- text: text_de[0]
- font.pixelSize: 30
- MouseArea {
- anchors.fill: parent;
- onClicked: {
- delete_text.text = text_de[1]
- }
- }
- }
-
-
- }
我找了许久的原因,有人告诉我说可能在切换翻译的时候指定的上下文参数不对,有变化,让我定义成静态的文字,就有了上面的更改!修改以后是可以正常切换翻译的,但是我对其原因还是半知半解的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。