2016-11-21 5 views
0

私はgpsシステムを開発しています。私はGUIを作るためにPythonとwxのpythonを使用しています。だから私は画像ビューアで単一の地図部分を表示することができました。しかし、それは十分ではありません。別の画像を同じ時間ロードして、それらをwxのpython GUIで単一の画像として表示したい。wxpythonで画像フレームに複数の画像を同時に設定する方法

どうすればwx pythonでこれを行うことができますか?

+0

多分あなたは[wx.GridSizer](http://zetcode.com/wxpython/layout/を使用することができます)レイアウトマネージャを使用してセルに画像を配置するか(電卓のボタンの例を参照)、[OnEraseBackground]を上書きすることができます(http://www.blog.pythonlibrary.org/2010/03/18/wxpython-putting-a-background-ウィンドウ上/ウィジェットを自由に描画するためのパネル上の画像/)機能 – furas

+1

"個別の画像...単一の画像として"より良いことを説明してください。タイルを使いたいですか? –

答えて

1

OnPaint(任意のウィジェット内)を使用して独自の要素を描画できます。

ウィジェットで多くの画像を描画できます。

import wx 

class MyFrame(wx.Frame): 

    def __init__(self): 
     wx.Frame.__init__(self, None, size=(300, 200)) 

     #self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM) 

     # two images 
     self.image1 = wx.Bitmap("ball-1.png") 
     self.image2 = wx.Bitmap("ball-2.png") 

     # assign own function to draw widget 
     self.Bind(wx.EVT_PAINT, self.OnPaint) 

     self.Show() 

    def OnPaint(self, evt): 
     dc = wx.PaintDC(self) 

     # draw own elements 

     width = self.image1.GetWidth() 
     height = self.image1.GetHeight() 

     dc.DrawBitmap(self.image1, 0, 0) 
     dc.DrawBitmap(self.image2, width, 0) 

     dc.DrawBitmap(self.image2, 0, height) 
     dc.DrawBitmap(self.image1, width, height) 

if __name__ == '__main__': 

    app = wx.App() 
    MyFrame() 
    app.MainLoop() 

ball-1.pngボール-1.png ball-2.pngボール-2.png

MyFrame.png

関連する問題