問題タブ [pyqt6]
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.
python - QGraphicsItem が互いに衝突しないようにする方法
アイテムをドラッグしてシーン内で移動できるグラフィックシーンを持つアプリを作成しています。
シーン内のアイテム間の共謀を防止しようとしていますが、この質問Prohibit collision of a moving QGraphicsItem with other itemsがうまく機能しませんでした (おそらく、PyQt6 を使用していて、qt からの変換がうまくいかなかったためです)。
QGraphicsEllipseItem と QGraphicsRectItem を使用していますが、QGraphicsEllipseItem のすべてのソリューションが非常に役立ちます。
衝突が発生する軸でのみ動きをブロックする必要があることを理解しましたが、それを実装することができませんでした。複数の共謀に対処するために、アイテムが衝突しているアイテムのリストを調べてみました。
私はPyQt6を使用していますが、何でも役に立ちます
これが私がそれを解決しようとした方法です:
python - PyQt6: AttributeError Qt
次のコードを PyQt5 (そこで動作します) から PyQt6 に変換する必要があります。
これはエラーです:
私はすでにこれを試しました:
それは言います:
python - QTreeWidget を PyQt のネストされた辞書に変換する
これを行う理由は、ユーザーが を使用してファイル ツリーを作成できるようにするためですQTreeWidget
。次に、そのツリーをネストされたdict
構造に抽出し、何らかの方法で保存します。txt
ファイルとアプローチを使用してeval
、保存されたすべてのスキームを配列またはキーがスキームの名前である別の辞書にロードすることを考えました。これにより、ユーザーはスキームを選択するか、必要に応じて編集することができます。これは当然、ユーザーが編集を選択dict
した後に、保存されたものを元に戻す必要があることにつながります。QTreeWidget
今のところ、ここに私の問題があります。
QTreeWidget
再帰関数を使用して、正常にナビゲートできました。私が苦労しているのは、ネストされた を作成する背後にあるロジックdict
です。
以下は私がこれまでに思いついたものです:
私はこれが間違っていることを知っています。だからこそ助けが必要なのです。
上記のコードは、次のdict
フォームを生成します。QTreeWidget
{'a':'E', 'b':{'a':'E', 'c':'E'}}
ただし、次のようにする必要があります。
{'a':'E', 'b':{'a':'E'}, 'c':'E'}
E は単に、これ以上サブディレクトリがないことを意味します。
私はこれの他のいくつかの実装を見てきましたが、それらはひどく紛らわしく、論理がよくわかりません。これは、私がここで尋ねている質問とほぼ同じですが、まだ回答がありません。私は彼の実装を適応させようとしましたが、(とにかく私にとって) 複雑で、私のプログラムの構造に適合させるのは困難です。