問題タブ [qt5.5]

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 投票する
0 に答える
1631 参照

qt - QMLで「常に一番上」のウィンドウの動作を動的に変更する方法

Menuアイテムをトグルするなどして動作を変更するにはどうすればよいですか? フラグを変更/設定してみました:

フラグは適切に設定されていますが、変更しても変更されませんonTop.checked

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

qt - NoWrap を使用した TextArea で常に「アンカー ループが検出されました」という警告が表示されるのはなぜですか?

なぜTextArea

常に原因

file:///C:/Qt/5.5/mingw492_32/qml/QtQuick/Controls/ScrollView.qml:340:13: QML アイテム: フィルでアンカー ループが検出される可能性があります。

私はそれを実行するとき?

64 ビット Windows 7 マシンで Qt 5.5 を実行し、MinGW でコンパイルしています。

ここに私のQMLコードがありますtest.qml:

ここに私のC++コードがありますmain.c:

に追加anchors.fill: parentしてもTextArea、まだ警告が表示されます。

この質問の 2 番目の部分として、この警告は心配する必要がありますか、それとも無視しても問題ありませんか?

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

qt - OpenCV 3.0 with Qt 5.5: ツールバー アイコンとコントロール パネルが表示されない

高度な HighGUI 機能のいくつかを試すために、Qt サポート (Qt 5.5) を使用して OpenCV 3.0.0 をビルドしました。

「メイン」と呼ばれるウィンドウに、素敵なツールバーと「テスト」ボタンを含むコントロール パネルが表示されることを期待していました (こちらを参照)。

私が得たのは、アイコンが欠落している(スクリーンショットを参照)ツールバーを備えた「メイン」と呼ばれるウィンドウであり、コントロールパネルはまったく表示されません。

スクリーンショット

ここで何が問題なのですか?

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

c++ - C++ から作成された qml オブジェクトの親の設定が機能しない

QML オブジェクトを作成する C++ クラスがあり、5 つのパラメーターを取ります。

次のようにQMLで使用します。

C++ のコンテキストでは、設定したプロパティの値と、parent of the created object. However, when I print them from QML, the親のhas anull and the properties areundefined` を正しく出力できます。

C++ と QML から作成されたオブジェクトのアドレスを出力しましたが、同じアドレスが得られました。この動作の原因がわかりません。

ご協力いただきありがとうございます。

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

qt - 配列の要素でバインディングを使用するときの奇妙なバインディング動作

プロパティを持ってItemいます。このプロパティには、他のプロパティを含む JavaScript オブジェクトの配列が含まれています。

オブジェクトのプロパティの 1 つのバインディングを変数に設定し、その (変数) 値が変更されてバインディングがトリガーされると、配列内のすべてのプロパティが初期値にリセットされます。問題を示すために小さなデモを作成しました。

C++ コード:

QML コード:

ここに私が得るものがあります:

qml: CLICK #1[RED SQUARE] : testObject.myArray[0] を TRUE に設定 qml: CLICK #1[RED SQUARE] : DONE

qml: CLICK #2[BLUE SQUARE] : C++ の <Test::valueChanged> メソッドを呼び出して通知をトリガーする

qml: CLICK #2[BLUE SQUARE] : [BEFORE] testObject.myArray[0].name: CustomName, testObject.myArray[0].boolFlag: true qml: CLICK #2[BLUE SQUARE] : [AFTER] testObject.myArray [0].name: CustomName、testObject.myArray[0].boolFlag: false

ここで何が起こるかというと、testObject.myArray[0].boolFlagfromfalseを設定してメソッドtrueを呼び出すとtest.valueChanged()、フラグが自動的に初期値にリセットされます。、 などint、使用される他のタイプについても同じことが言えます。string

なぜこれが起こるのですか?

Visual Studio には update 4 がインストールされています。

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

c++ - QML と登録済みの型を使用した QWidget アプリケーション

QML を利用する QWidget アプリケーションがあります。組織のユーティリティ関数の一部を公開するために使用しているクラスがあります。

問題を次のコードに要約しました (コードの下で問題を説明します)。

まず、ファイルは次のとおりです (簡潔main.cppにするためにほとんどを除外しました)。includes

含まれているものは次のmain.hとおりです。

最後に、これが私の QML ファイルです。

私がやろうとしているのはMyUtils、QML に含めて使用できるシングルトンとしてクラスを登録することです。問題は、これを実行すると、アプリケーションの出力から次のメッセージが表示されることです。

QML デバッグが有効になっています。安全な環境でのみ使用してください。

Qml デバッグが有効になっています。安全な環境でのみ使用してください。

qrc:/main.qml:8: ReferenceError: myutils が定義されていません

オブジェクトのインスタンス化の前に(そして笑い声のために他のさまざまな場所qmlRegisterSingletonTypeに) を入れようとしましたが、これまでのところ、これを機能させることができませんでした。main()QApplication

qDebug()メソッドにブレークポイントまたはメッセージを配置するMyUtils::MyUtilsProviderと、呼び出されないことに気付きました。これにより、私のMyViewクラスは、シングルトンを登録しQQmlEngineているオブジェクトとは異なるオブジェクトを使用している可能性があると思います。しかし、その場合、そのエンジンをコンストラクターqmlRegisterSingletonTypeに渡す方法がわかりません。MyView

誰かが私が間違っていることと、これを機能させる方法を教えてもらえますか?

ありがとうございました!

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

qt - ダブルMouseAreaを有効にする方法は?

ここに私のQMLコードがあります:

のみmouseArea1有効です。削除すると有効にmouseArea1なりmouseArea2ます。mouseArea1したがって、マウスイベントは で処理する必要があり、渡せなかったと思いますmouseArea2

ドキュメントを検索して、そのような動作を防ぐことができる属性を見つけましたが、何も見つかりませんでした。mouseArea1では、とmouseArea2を同時に有効にする方法は?

0 投票する
3 に答える
10282 参照

qt - 「プロパティのバインディング ループが検出されました」という警告を省略するにはどうすればよいですか?

この質問を書き直すことにしました。私はそれを明確かつ短くしようとしましたが、うまくいきませんでした。

私が達成しようとしているのは、何でも (RectangleなどImage) に配置して、タッチ ジェスチャに反応させることができるオブジェクトです。残念ながら、解決できない問題に遭遇しました。ヘルプが見つからなかったので、ここで試してみます。

これは簡単main.qmlです:

ここに MyTouchSurface.qml があります

MyTouchSurface他のオブジェクトに簡単に適用したり、別のプロジェクトで使用したりできるように、すべての計算と関数を内部に配置したいと考えています。

私が抱えている問題は、ターゲット オブジェクトがコンテナーから移動するのを防ぐ方法がわからないことです。さて、ここのコードは非常にうまく機能していますが、バインディング ループに関する非常に醜いエラーも生成します。

何が起こっているのですか:

  • ターゲットの x と y が変更されたときにチェックします
  • xまたはyが指定された領域外にある場合、それらを元に戻します
  • 信号「x changed」または「y changed」を再度受信しました
  • 関数自体が再度実行されたため、ループに関するエラーが発生しました

だから私は尋ねています:オブジェクトが画面から飛び出すのを防ぎ、同時にバインディングループエラーを受け取らないようにする簡単な方法は他にありますか?

ターゲットのとを時々Timerチェックして、それらを戻すために使用できることを私は知っています。xy

easingアニメーションのandを変更して、コンテナの境界自体で停止できることはわかっていますがduration、停止したように見えます。

真剣に。簡単な方法はありませんか?


うまくいかないこと:

  • オブジェクトがコンテナの外で検出された後、アニメーションを停止します (オブジェクトが非常に速く動く場合は、画面の外で停止します)
  • アニメーションを停止してから、ターゲットのxまたはを変更するy

これまで私を助けてくれたみんなに感謝します。私がここに一人ではないことを知ってうれしいです:)