問題タブ [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.
qt - QMLで「常に一番上」のウィンドウの動作を動的に変更する方法
Menu
アイテムをトグルするなどして動作を変更するにはどうすればよいですか? フラグを変更/設定してみました:
フラグは適切に設定されていますが、変更しても変更されませんonTop.checked
。
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 番目の部分として、この警告は心配する必要がありますか、それとも無視しても問題ありませんか?
qt - OpenCV 3.0 with Qt 5.5: ツールバー アイコンとコントロール パネルが表示されない
高度な HighGUI 機能のいくつかを試すために、Qt サポート (Qt 5.5) を使用して OpenCV 3.0.0 をビルドしました。
「メイン」と呼ばれるウィンドウに、素敵なツールバーと「テスト」ボタンを含むコントロール パネルが表示されることを期待していました (こちらを参照)。
私が得たのは、アイコンが欠落している(スクリーンショットを参照)ツールバーを備えた「メイン」と呼ばれるウィンドウであり、コントロールパネルはまったく表示されません。
ここで何が問題なのですか?
c++ - C++ から作成された qml オブジェクトの親の設定が機能しない
QML オブジェクトを作成する C++ クラスがあり、5 つのパラメーターを取ります。
次のようにQMLで使用します。
C++ のコンテキストでは、設定したプロパティの値と、parent of the created object. However, when I print them from QML, the
親のhas a
null and the properties are
undefined` を正しく出力できます。
C++ と QML から作成されたオブジェクトのアドレスを出力しましたが、同じアドレスが得られました。この動作の原因がわかりません。
ご協力いただきありがとうございます。
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].boolFlag
fromfalse
を設定してメソッドtrue
を呼び出すとtest.valueChanged()
、フラグが自動的に初期値にリセットされます。、 などint
、使用される他のタイプについても同じことが言えます。string
なぜこれが起こるのですか?
Visual Studio には update 4 がインストールされています。
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
誰かが私が間違っていることと、これを機能させる方法を教えてもらえますか?
ありがとうございました!
qt - ダブルMouseAreaを有効にする方法は?
ここに私のQMLコードがあります:
のみmouseArea1
有効です。削除すると有効にmouseArea1
なりmouseArea2
ます。mouseArea1
したがって、マウスイベントは で処理する必要があり、渡せなかったと思いますmouseArea2
。
ドキュメントを検索して、そのような動作を防ぐことができる属性を見つけましたが、何も見つかりませんでした。mouseArea1
では、とmouseArea2
を同時に有効にする方法は?
qt - 「プロパティのバインディング ループが検出されました」という警告を省略するにはどうすればよいですか?
この質問を書き直すことにしました。私はそれを明確かつ短くしようとしましたが、うまくいきませんでした。
私が達成しようとしているのは、何でも (Rectangle
などImage
) に配置して、タッチ ジェスチャに反応させることができるオブジェクトです。残念ながら、解決できない問題に遭遇しました。ヘルプが見つからなかったので、ここで試してみます。
これは簡単main.qml
です:
ここに MyTouchSurface.qml があります
MyTouchSurface
他のオブジェクトに簡単に適用したり、別のプロジェクトで使用したりできるように、すべての計算と関数を内部に配置したいと考えています。
私が抱えている問題は、ターゲット オブジェクトがコンテナーから移動するのを防ぐ方法がわからないことです。さて、ここのコードは非常にうまく機能していますが、バインディング ループに関する非常に醜いエラーも生成します。
何が起こっているのですか:
- ターゲットの x と y が変更されたときにチェックします
- xまたはyが指定された領域外にある場合、それらを元に戻します
- 信号「x changed」または「y changed」を再度受信しました
- 関数自体が再度実行されたため、ループに関するエラーが発生しました
だから私は尋ねています:オブジェクトが画面から飛び出すのを防ぎ、同時にバインディングループエラーを受け取らないようにする簡単な方法は他にありますか?
ターゲットのとを時々Timer
チェックして、それらを戻すために使用できることを私は知っています。x
y
easing
アニメーションのandを変更して、コンテナの境界自体で停止できることはわかっていますがduration
、停止したように見えます。
真剣に。簡単な方法はありませんか?
うまくいかないこと:
- オブジェクトがコンテナの外で検出された後、アニメーションを停止します (オブジェクトが非常に速く動く場合は、画面の外で停止します)
- アニメーションを停止してから、ターゲットの
x
またはを変更するy
これまで私を助けてくれたみんなに感謝します。私がここに一人ではないことを知ってうれしいです:)