問題タブ [qt-quick]
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.
qt - QMLの表示から画面/ページを削除/削除するにはどうすればよいですか?
Loader
複数の画面/ページをロードするために使用しているものがあります。
マウスイベントでローダーに1つずつロードしている約10個のQML画面/ページがあります。
QWidget::setMask()
一部の画面では、画面/ページの一部を透明にし、画面にパンチ穴を開ける機能を使用して透明度を設定する必要があります。
画面であるを使用QWidget::setMask()
して、CPPコードからマスクを設定しています。rootObject
Loader
QWidget::setMask
は完全に機能していますが、マスクされた領域には以前にロードされた画面/ページが表示されます。
だから私は質問があります、ドキュメントhttp://doc.qt.nokia.com/4.7-snapshot/qml-Loader
に記載されているように、要素は新しい画面/ページをロードする前に、ロードされたコンポーネントをディスプレイから適切に削除/削除しますか? loader.html。Loader
また、とという名前の2つの関数がComponent.onDestroyed
ありますComponent.onDestruction
ローダーで新しい画面/ページをロードするonDestruction
と、ロードされた画面に対してイベントが発生します。
ローダーに新しいページをロードしたら、画面/ページをディスプレイから完全に削除/破棄したい。以前にロードされた画面の可視性と不透明度も設定しようとしましたが、それでもマスクされた領域に以前にロードされた画面/ページを表示できます。
ローダーを設定source = ""
しsourceComponent = undefined
た後、以前にロードされたページがローダーに表示されても、画面が更新されません。前のページは破棄されますが、表示からクリア/削除されません。
理由は何ですか?
qt - QML: qml 画面のレンダリング中の問題
開発ボードの 1 つで QML 画面をレンダリングしているときに問題に直面しています
一部の画面では、この画像に示すように、画面の背景色を確認できる throbber gif 画像があります。
一部の画面で、JavaScript を介して更新しているリスト ビューがありますが、リスト ビュー要素で更新された画像/テキストを表示できないため、有効になりません。
これは、画面の更新に関連するある種の問題ですか。
IX86 で QML を使用してコンパイルすると、同じコードが Ix86 で正常に実行されます。
qt - QML: 動的に作成されたコンポーネントをローダーに設定する方法
次のコードを使用して、新しい QML 画面を作成しています。
このコンポーネントをローダーに設定したいです。
私はそれを使用してそれをやろうとしましたLoader.sourceComponent = newObject;
動作しますが、次のエラーが発生します。
これに対する回避策はありますか。
ありがとう。
qt - Qt QML C++QカスタムListViewモデルとしての構造体のリスト
私のプロジェクトにあるのは、構造要素のリストを含むバイナリファイルです。
ファイルからデータを読み取った後、すべての読み取り値をクラスの次のフィールドに格納します。
私はこのリストを次の宣言でQMLに公開します:
その後にgetterメソッドとsetterメソッドが続きます。
ファイルが読み取られるたびに、「setEntries」メソッドを使用してベクトルを設定し、信号を送信します。
QMLのリストビューには、モデルに添付されたQ_PROPERTYFileContentsがあります。
構造のリストに保持されているデータにアクセスしてQMLで表示するにはどうすればよいですか?
更新: あなたの提案の後、私はコードを少し変更しました、そしてそれは今うまくコンパイルされます。次のクラスが作成されました。
UPDATE 2 OK、もう少し分析した後、私はうまくいく解決策を見つけることができました。上記のListView宣言に関しては、現在の状態に更新されました(参照による構造体の受け渡しは機能しませんでした。値によるコピーを使用する必要がありました)。
どちらの答えも何らかの形で役に立ちましたが、受け入れることができるのは1つだけなので、ラドンが書いた最初の答えを受け入れます。指導ありがとうございました!
qt - QML: QML で workerscript を破棄または停止する方法
WorkerScript
QMLでリストモデル要素をロードするために使用しようとしています。しかし、更新が完了したら
、どうすれば停止できますか。
を破壊または停止する方法はありますか? WorkerScript
WorkerScript
c++ - QML 翻訳
QMLで翻訳を使用しようとしています。新しいプロジェクト QtQuick プロジェクトを開き、QtQuick アプリケーション タイプとして Symbian 用の QtQuick Componenets を選択しました。Qt Creator は、すべての標準ファイル (main.cpp、main.qml、mainpage.qml...) を含むアプリケーション ソース ツリーを作成しました。
MainPage.qml は非常に単純です。
私の main.cpp ファイルは、次のように QTranslator の実装を管理します。
次に、lupdate mainpage.qml -ts inter_en.ts を実行します。リンギストを使用して、POSIX 表現「Hello world!」を翻訳しました。それが翻訳されていることをテストするだけです。次に、リンギストで inter_en.qm ファイルを作成しました。
しかし、シミュレーターでアプリケーションを実行すると、「Hello world!」が表示されません。翻訳されていますが、翻訳者は正常にロードされています (qDebug で "Translating: true" が表示されます)。
コードの一部を QPushButton でマーク解除すると (この目的のために lupdate と言語学を繰り返します)、「Hello world!」QPushButton の式は正しく変換されます。
正しく翻訳されていないのは QmlApplicationViewer と QML ファイルだけです。何か質問がありますか?????
ありがとう
アップデート
次のことがわかりました: MainPage.qml は、再利用可能なコンポーネントとして main.qml にインポートされます。main.qml で qsTr() を使用すると、テキストは main.qml で正しく翻訳されます。ただし、MainPage.qml のテキストは正しく翻訳されていません。再利用可能なコンポーネントとしてインポートしたためだと思います。コメントはありますか?経験?
UPDATE2 - ソリューション
翻訳ファイルは、大文字と小文字を区別して作成する必要があります。
qt - symbian 上の qt での翻訳
QTranslator を使用している単純な Qt アプリがあります。コードの一部は次のようになります。
プロジェクトをビルドしてシミュレーターで実行すると、QTranslator が正常に読み込まれます
同じアプリをビルドして実際の Symbian デバイス (C7) にデプロイすると、正しく動作しません - トランスレーターが読み込まれません。inter_sk.qm ファイルを変更していないので、何らかの理由でデバイスに展開されていないと思います。
推測???
ありがとう
qt - QMLプロジェクトのQtCreatorでグレー表示された[デザイン]ボタン
私はKubuntu11システムを使用していて、最初のQtQuickプロジェクトを試しています。これはKubuntuなので、付属のQtを使用して実行していますが、これまでは問題なく動作していました。
Qt Creatorに、QtQuickからサンプルの「HelloWorld」プロジェクトを作成するように依頼しました。ただし、実行ボタンと同様に、デザインボタンはグレー表示されていました。
最初に「実行設定」の下の「プロジェクト」メニューに入ると、Qtバージョン:[無効なQtバージョン]と表示されました。[Qtバージョンの管理]ボタンを押すと、次のようなツリーコントロールが表示されます。
ダイアログの下部に、「mkspec linux-g ++(デスクトップ)を使用してQtバージョン4.7.2が見つかりました」と表示されます。
アプリリポジトリからQmlViewerを手動でインストールすることを選択すると、「無効なQtバージョン」メッセージが表示されなくなる可能性があることがわかりました。「Qmlビューアが見つかりません。インストールしてください」のように表示されると思いますが...まあ。Qtバージョン:[PATHのQt]と表示されます。
これで修正され、Qmlアプリが実行されます。ただし、[デザイン]ボタンはまだグレー表示されています。Qt Designerはアプリケーションとしてインストールされ、そのプラグインは「プラグインについて...」リストに表示されます。デザインボタンは、.qmlファイルではなく、フォームファイルをクリックすると、通常の(Qt-Quick以外の)プロジェクトで有効になります。
symbian - S60 5th Edition に Qt クイック アプリをインストールして実行する
Qt は初めてで、Qt Quick 1.1 を使用して Symbian^3 プラットフォーム用のアプリを開発しています。私のアプリは Symbian^3 タッチ デバイスでは正しく動作しますが、Nokia S60 第 5 版にインストールするとインストールされますが、これらのデバイス (S60 第 5 版) ではアプリを実行できませんでした。
また、このリンクで説明されているように、 S60 は Qt Quick 1.1 をサポートしていませんが、このライブラリを使用してアプリをインストールすると、最初に Qt Quick がダウンロードされ、次に Qt がインストールされてからアプリがインストールされます。
アプリを S60 デバイス (RDA) にインストールすると、最初にスマート インストーラーを使用して 5 つの異なるユニットがダウンロードされ、インストールされます。後でアプリをインストールしますが、アプリのアイコンをクリックしても実行されません。何が起こっているのですか?
私のアプリはほぼ完成しており、Symbian^3 デバイスでテストしましたが、正常に動作しますが、S60 デバイスでは実行されないため、ovi ストアでアプリをリリースすることになっています。
S60 専用の別の方法でアプリをビルドする必要がありますか? Symbian^3 デバイスと S60 デバイスの両方で同じアプリ sis ファイルを実行できませんか?
どんな助けでも大歓迎です。
ありがとうございました