2017-07-16 9 views
0

私はQt 5.9(+ V-Play)のクロスプラットフォームアプリケーションを台湾の共同作業用スペースとして開発しています。
すべてのユーザーはです。中国語の繁体字中国語ネイティブなので、私のアプリではUTF-8中国語の文字列を使用しています。QMLボタンテキストはutf-8中国語を表示できません(空白を表示するだけです)

中国は私だけスペースを示してOKらしい部品のほとんどが、UTF-8でQMLボタン。デスクトップで

それは正常に動作しますが、Androidの上(エミュレータでと電話の両方で)問題がを発生しました。
さらに、後でComponent.onCompleteのbutton.text = "中文UTF-8中国語"を正しく設定すると、正しく表示されます。

Button.textフィールドに中国語(UTF-8)文字列を使用できますか?
「はい」の場合は、動作させるにはどうすればよいですか?

更新:これは最初のタブで行わ
が(タブが示さアプリケーション開始)コメントで
POC

コード:

// imports 
import VPlayApps 1.0 
import QtQuick 2.0 
import QtQuick.Layouts 1.1 

import QtQuick.Controls 2.1 
//import QtQuick.Controls.Material 2.1 
import QtPositioning 5.2 
// QML Button parts 

Rectangle { 
    id: containerBtn 
    height: dp(60) 
    radius: 5 
    anchors.right: parent.right 
    anchors.left: parent.left 
    anchors.bottom: parent.bottom 
    border.color: "blue" 


    Button { 
     id: btn_reload_pic 
     text: "截圖.reload()" 
     //dropShadow: true 
     //icon: IconType.recycle 
     anchors.right: parent.horizontalCenter 
     //width: parent.width/4 
     //radius: 5 

     onClicked: { 
      var currentTime = new Date(); 
      currentSnapshot.snapshotURL = currentSnapshot.snapshotURL + "?t=" + currentTime 
     } 
    } 

    AppButton { 
     id: btnLock 
     text: "芝麻開門(或關門)" 
     dropShadow: true 
     icon: IconType.question 
     anchors.left: parent.horizontalCenter 
     width: parent.width/4 
     radius: 5 

     onClicked: lockSwitch() 
    } 
} 
// Component.onComplete 
btnLock.text = '芝麻關門'; 

スクリーンショット:

Button shows empty utf-8 chinese string

after setting button.text later in onComplete

環境:

のQt 5.9
QtCreator 4.3.0
2.12.1-1
のUbuntu 16.04 LTS 64 のAndroid 7.0 API 24、x86のをV-再生エミュレータ/ HTC 10

テストアプリ:Google PlayのMOLiApp(投稿できません)ここにリンクしてください)

+0

ここにPOC:https:// github。com/BlueT/qt-testing-utf8 –

+0

他の開発者からのいくつかのテストによれば、Android 5はうまく動作するため、これはAndroid 7の互換性の問題かもしれません。 –

答えて

0

バグまだの下での下にあります。私のテストと同様に

、問題はのみ史上初のロードされたページに起こるので、V-Play forumから回避策ローダーでロード処理を延期することです。

import VPlayApps 1.0 
import QtQuick 2.5 

App { 
    id: app 

    // loads the given item dynamically after app-start 
    Loader { 
    id: loader 
    sourceComponent: navigationComponent 
    asynchronous: true 
    anchors.fill: parent 
    visible: false 

    // after loading is finished, add the item to the main app content item 
    onLoaded: loader.item.parent = app.contentItem 
    } 

    // component for main navigation 
    Component { 
    id: navigationComponent 
    Navigation { 

     // Comment to use a navigation drawer instead of tabs on Android 
     navigationMode: navigationModeTabs 

     NavigationItem { 
     title: qsTr("First Page") 
     icon: IconType.square 

     FirstPage {} 
     } 

     NavigationItem { 
     title: qsTr("Second Page") 
     icon: IconType.circle 

     SecondPage {} 
     } 

    } 
    } 
} 

これは修正ではなく、動作する回避策です。

関連する問題