問題タブ [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.

0 投票する
2 に答える
6540 参照

c++ - QtQuick 2 ウィンドウのタイトルを変更するには?

プロジェクトのデフォルト ウィンドウを変更しようとしていますが、うまくいきません。QtQuick 2.0 を使用しています。QtQuick.Window 2.0 をインポートして、Window{} を Rectangle{} の代わりにルート オブジェクトとして作成しようとしましたが、ウィンドウ オブジェクトをルートとして許可しません。次のエラーが表示されます。

ウィンドウのタイトルを変更する方法についてのアイデアはありますか? Qt 5.1.1 を使用しています。

0 投票する
1 に答える
1538 参照

qt - 終了時に QQuickView を削除すると Qt アプリケーションがフリーズする

Qt 5.3 でデッドロックが発生しました。正しく修正するには?醜い修正なし(qquickview *を削除しないでください)

へのポインタを持つシングルトンがありますQQuickView。アプリケーションを閉じる必要があるときは、singlenot の呼び出しを行い、デストラクタでQGuiApplication::quit()解放しようとします。QQuickView *結果 - アプリケーションがフリーズします。

サンプル:

test.qml

main.cpp

PS C++0x は、コードを簡素化するために使用されます。C++03 コンパイラでも同じ結果です。

0 投票する
1 に答える
4638 参照

c++ - Qt5 QuickView はウィンドウを作成できません: 利用できるスクリーンがありません

次のコードを実行しようとするたびに、このエラー (以下のタイトル) が表示されます。

ウィンドウを作成できません: スクリーンがありません

プログラムが予期せず終了しました。

そのエラーについてオンラインで見つけることができるのは、上記よりもはるかに複雑な特定の条件に起因するバグレポートだけです。

app.qmlは、単独で正常に実行されるファイルです。つまり、上記の C++ がなくても、「Qt Quick UI」として構成された別のプロジェクトで実行できます。パスqrc://を指定したり、意図的に存在しないファイルを指定したりしても、効果はありません。

QObject*キャストに注意してください-これはdocsにはありませんでしたが、ありませんでした:

/main.cpp:11: エラー: タイプ 'QObject *' の変数をタイプ 'QQuickItem *' の右辺値で初期化できません

これはどのように行うべきですか?

0 投票する
1 に答える
1545 参照

c++ - Qt5.3 (mingw32) で QQuickView を削除する際のメモリ管理の問題

Qt/Qml (Qml は QWidget に埋め込まれています) でアプリケーションを開発しています。QQuickView (埋め込み) を含む QWidget を削除すると、割り当てられたメモリは完全には解放されません。

アプリケーションに QWidget を追加すると、約 30MB のメモリが割り当てられますが、ウィジェットが削除されると、約 20MB のメモリしか解放されません。

QWidget のデストラクタで、QQuickView インスタンスを削除しましたが、他に大きなオブジェクトはありません。

また、QQuickView がメモリを適切に解放しないことは確かです。

QQuickView によって割り当てられたメモリ全体を解放するにはどうすればよいですか?

注: コードは非常に大きい (160000 行) ため、サンプル コードを配置できません。

前もって感謝します...

0 投票する
0 に答える
112 参照

opengl - qml 5.3 で QQuickView から HGLRC を取得する

qml 5.3 アプリケーションで QQuickView から HGLRC を取得するにはどうすればよいですか?

私は自分のQQuickView. 問題は、openGL のレンダリング プロセスでレンダリング プロセスに触れたくないことです。したがって、最初に作成QQuickViewしてから HGLRC を取得し、関数によって openGl prog に設定しwglMakeCurrent(...)ます。

0 投票する
1 に答える
1428 参照

python - QQuickView のソースを変更する方法

私は qml と pyqt で書かれたゲームに取り組んでいますが、2 つのウィンドウ (ランチャー + ゲーム) に分割する必要があります。これら 2 つの qml ファイルを切り替える適切な方法は何ですか? ウィンドウのサイズを変更せず、多くのシグナルが必要なため、QmlLoader を使用したくありません。私はこの変種も試していました:

しかし、それは機能しませんでした (qml ウィンドウが機能しなくなりました... -クラシック Windows エラーですが、pycharm コンソールにエラーは書き込まれませんでした)

私のコードは次のようになります。

お分かりかもしれませんが、私の構造は混沌としているようです。なぜなら、私はこの切り替え動作を初めて行うからです。そのため、どのように正しく行うべきか、よくわかりません...すべてのアドバイスを歓迎します! :)

0 投票する
2 に答える
1137 参照

qt - QQuickWidget での MultiPointTouchArea の動作

MultiPointTouchArea を QQuickWidget 内で正しく動作させようとしています。次の例の qml ファイル (MultiPointTouchTest.qml) を考えてみましょう。

main.cpp ファイルでは、次のように QQuickWidget または QQuickView を使用します。

また

MultiPointTouchArea の出力は、次のシーケンス操作のための別の情報です。

  1. 最初の指をタッチスクリーンに置く
  2. 2 番目の指をタッチ スクリーンに置きます。最初の指のタッチは無効になり、今のところ重要ではありません。
  3. 2 本目の指を離します。コンソールは ---onCanceled---... を出力しますが、最初の指のタッチはまだ無効で、touch1.pressed は false です。

QQuickView を使用すると、この奇妙な動作は発生しません。

Qt のドキュメントでは、キャンセルされたシグナルについて、「このシグナルは、別のアイテムがタッチ イベント処理を盗んだため、新しいタッチ イベントがキャンセルされたときに発行されます」と述べています。

検索後のドキュメントの意味がわかりません。

画面にタッチすると何が起こるかを理解するためにソース コードを読み込もうとしましたが、QQuickWidget::event() がタッチ イベント (TouchBegin...) を QQuickWindow に送信し、QQuickView::event = QQuickWindow が再実装されなかったのが好きです。 .

では、Qt のドキュメントの本当の意味は何でしょうか?

QQuickView ではなく QQuickWidget が必要なので、QQuickWidget で MultiPointTouchArea を使用して、正しい動作を期待するにはどうすればよいですか?

0 投票する
1 に答える
1420 参照

qt - 既存のUIにQML(QQuickView)を追加

現在、C++ Visual Studio プロジェクトに統合する必要がある Qt クラスを開発しています。

Qt プロジェクト - Qt ウィジェット アプリケーション。Qt 5.3.2 に基づいて、Qt Creator 3.2.1 (オープンソース) でビルドします。Visual Studio 2013 Professional を使用して、Qt Addin をインストールしました。

インターネット全体または他のスタック投稿からのソリューションを試しましたが、成功しませんでした。他の投稿では問題が解決しなかったため、投稿が重複しているとは見なされません。

コードから QML を実行できましたが、別のウィンドウで起動します。最初の図では、プログラム UI の上に QML ウィンドウ (Qt キャンバス) が表示されています。

別ウィンドウの QML

QML をプログラム UI に統合する必要があります。QGraphicsView役立つ場合は使用できます。

ProgramUi

簡単な QML の例。canvas.qml

0 投票する
1 に答える
11946 参照

qt - 1 つのプロジェクト内の複数のウィンドウ

私のプロジェクトWindowでは、画面の 1 つ (1 つの送信者、1 つの受信者) にそれぞれ 2 つの QML を表示する必要があります。両方とも、.qml内部にいくつかの Cpp モデルを含める必要があるため、QQmlApplicationEngineCpp モデルを登録するために使用しています。

を使用すると、1 つのプロジェクトに対してQWidget::createWindowContainer()複数の を表示できることがわかりました。Windowこれは、最初の QML ファイルでは問題なく機能します。コード スニペットは次のようになります。

receive.qml同様の方法で2 つ目のアプリケーション エンジンを作成することにしました。receive.qmlがあっても が開かないことにすぐに気付きましたcontainer2->show()。現在、空のページが表示されています。

私の質問は次のとおりです。

  1. 私のアプローチは正しいですか、それともより良い解決策がありますか?
  2. ウィンドウを閉じるイベントをキャッチするには、どのシグナルに注意する必要がありますか? ウィンドウの1つが閉じられているときに信号を検出できないようです。どちらかが検出されたときに両方を閉じたかったので。