wxPythonを使用してプロジェクトのカットオプティマイザーを構築しています。描画領域に単純なフレームをレイアウトし、その下にアクションとメッセージ用の小さなパネルをレイアウトしたいと思います。
私はこれをやっています:
topPanel = wx.Panel(self)
# the intended drawing area, 800x600
self.planeArea = wx.Window(topPanel, -1, pos=(0, 0), size=(800, 600))
# a panel for showing messages and placing some buttons
commandArea = wx.Panel(topPanel, -1, pos=(800, 0), size=(800, 200))
button = wx.Button(commandArea, -1, label='Optimize')
box = wx.BoxSizer(wx.VERTICAL)
box.Add(self.planeArea, 0, wx.EXPAND | wx.ALL)
box.Add(commandArea, 0, wx.EXPAND | wx.ALL)
topPanel.SetSizer(box)
そして、私の描画方法では、次のことを行います。
# I'm using clientDC because I draw the shapes after the user chooses a file, Am I doing it wrong? I still haven't figured how or when to use paintDC and left that research for later
dc = wx.ClientDC(self.planeArea)
dc.Clear()
dc.SetDeviceOrigin(0, 0)
for polygon in plane.polygons:
dc.DrawPolygon(polygon.vertices)
SetDeviceOriginを使用しない場合、ポリゴンはウィンドウの左端と最上部のポイントから描画されますが、左端の最下部のポイントから開始したいと思います。
問題は、0,0がウィンドウ全体に相対的であり、描画パネルに相対的ではないため、図面が誤って配置されていることです。
私はドキュメントと次の例を読んでいますが、これを整理することはできません。誰かが私が間違っていることを知っていますか?
MountainLionとPython2.7(PyDevとEclipse)でwxPython2.9-osx-cocoa-py2.7を使用しています
どうもありがとう、
ロッド