1

現在、フレームにいくつかのカスタムウィジェットがあり、ボタンを押すとさらにフレームに入るプログラムをQTで構築しています。フレーム内でドラッグして移動する独自の機能を実装しましたが、すべて正常に動作しますが、問題は次のとおりです。これらのウィジェットのいくつかが画面に既にあり、それらが最初の場所から移動した場合、追加します別のウィジェットをレイアウトに追加すると、レイアウト全体でその下のすべてのウィジェットの場所がリセットされます。

私は .move(x,y) を使用してそれらを移動し、 .addWidget(my widget) をレイアウトにウィジェットを追加する方法として使用しています。

これを防ぐ方法、または何らかの回避策はありますか? または、他に何もないとしても、新しいフレームが追加されたときに自動的に動き回らないフレームにそれらを追加する他の方法はありますか?

4

1 に答える 1

0

私は自分の問題をある程度解決しましたが、それはちょっとした回避策です。新しいウィジェットがレイアウトに追加されると、レイアウトはそれらをすべて再描画して、設定されたパラメーターと間隔を空けて配置/整列させるため、各ウィジェットに x、y 座標を保存して移動することで、この機能を補正しようとしました。新しいウィジェットがレイアウトに追加されるとすぐに元に戻ります。

レイアウトがこれまたは何かを何らかの方法で検出し、すぐにそれらを元に戻したので、最初の努力は無駄でした。ただし、これが私がそれを解決した方法です-私はstackedWidgetを使用しました。新しいウィジェットが追加されたときに、それぞれをある程度の間隔で自動的に配置しようとしますが、すべてのサブウィジェットを元に戻す小さな for ループ (これはまったく変更していません)が機能するようになりました。

于 2013-11-14T23:39:36.830 に答える