0

複数の子が含まれるwx.Panelがあります。

別の子を配置するときに、すでに配置されている子を踏んでいないかどうかを確認するにはどうすればよいですか?

(つまり、子供たちのリストをいじくり回して、すべての位置とサイズを取得し、数学を行うという解決策を考えることができます。...しかし、もっと簡単な解決策がまだないかどうか知りたいです)

[編集]:親パネルにアウトラインがあり、子パネルを結ぶ線が付いた複数のパネルが必要です。アイデアは、線が別のパネルと交差していないかどうかを判断できるようにすることです。

4

2 に答える 2

3

私の提案は、サイザーを使用して子を配置することで問題を回避することです。はるかに簡単です。

あなたの編集から、あなたの質問のタイトルが示すように、あなたはウィジェットの重複について心配していないことがわかりますが、線がウィジェットと重複しているかどうか。

この別の問題に対する私の提案は、重複を最小限に抑え、多くの場合完全に排除する効果的なレイアウトを計算するGraphViz( http://www.graphviz.org/ )の使用を検討することです。達成できることの同じ例については、http://ravenspoint.com/maps.htmlをご覧ください。

于 2013-03-10T18:59:01.303 に答える
1

ウィンドウであるコンポーネント(wx.Panel、wx.StaticLineなど)には.getRect、wx.Rectを返すメソッドがあります。

wx.Rectには、2つの要素が重なっている場合にtrueを返すメソッドがあります。.Intersects(self, otherRect)

いくつかの追加機能を備えたwx.Rect2Dもあります-補間、交差と和集合の取得など。

于 2013-03-11T10:59:45.493 に答える