問題タブ [qquickview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - qsTr は QQuickView では機能しません
QQuickView を使用して、ウィジェット アプリケーションで qml インターフェイスを表示します
qml インターフェイスを多言語にする必要があるため、QQuickView をインスタンス化する前に、新しいトランスレーターをアプリケーションにインストールします。
load関数とinstallTranslator関数の両方が true を返します。(ターゲット言語の翻訳は ts ファイルに存在し、右のディレクトリに配置された qm ファイルにコンパイルされます)
問題は、C++ の翻訳がうまく機能することです。次のコードはターゲット言語で文字列を出力します。
しかし、QQuickView文字列によって表示されるqmlインターフェースでは、翻訳されていないままです
デバッグ中に、正しいsourceText変数を使用してQCoreApplication::translate
関数が Qt によって呼び出されることがわかりましたが、からのすべての QTranslatorsは null QStringsを返すため、表示されるテキストは翻訳されません。qsTr("translation test")
self->d_func()->translators
なぜこれが起こるのか、QQuickViewでテキストを翻訳する方法はありますか?
c++ - Qt: Qwidget ウィンドウ コンテナーを使用したレイアウト
QWidget 内に QML マップを表示するアプリケーションがあります。Qwidget は、マップがほとんどのスペースを占有できるようにするために、スプリッターを使用して水平レイアウトの一部を形成します。私のUI構造は下の画像のようになります。
wdgtMapは、ウィンドウ コンテナーとして使用されるものです。そこに(デザイナーで)テキスト編集をドロップすると、テキスト編集は期待どおりにウィジェットを埋め、アプリケーションのサイズが変更されて最大化されると拡張します。
コードでマップ用のウィンドウ コンテナーを作成すると、マップは wdgtMap のサイズに拡張されません。私は無駄に多くの異なるオプションを試しました。
private セクションの下のヘッダー ファイルで、次のようにします。
2 番目の画像は最終的に完成したものです。右上のブロックに小さな地図が表示されています。アプリのサイズが変更されると、そのすべてのスペースを埋めて拡大/縮小したい。
正しい方向へのポインタは大歓迎です。