WXPythonの画像にフレームをサイジングします
-
28-10-2019 - |
質問
私は背景の画像を備えたプログラムを作成しています。私がやろうとしているのは、フレームを正確にフィットさせることです。
画像の寸法でフレームを簡単に開始するのは簡単です。
wx.Frame.__init__(self, parent, title=title, size=(500, 300))
しかし、これはウィンドウの境界とヘッダーも説明するため、これは完全に正確ではありません。ピクセルサイズを手動で調整することができません(とにかく一貫したクロスオオはありません)、私は何ができますか?
編集:答えを見つけましたが、数時間自己回答できないようです。その間...
Backdrop = wx.Bitmap("image.png")
self.SetClientSize((Backdrop.GetWidth(), Backdrop.GetHeight()))
解決
サイザーで同じことを達成することができます。これは、画像と一緒に他のアイテムを含めてフレームでどのようにスケーリングするかを制御する必要がある場合にも簡単になります。
これは、画像に合うようにサイズを変更するフレームの基本的な例です。
import wx
class Frame(wx.Frame):
def __init__(self, parent, id, title, img_path):
wx.Frame.__init__(self, parent, id, title,
style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
image = wx.StaticBitmap(self, wx.ID_ANY)
image.SetBitmap(wx.Bitmap(img_path))
sizer = wx.BoxSizer()
sizer.Add(image)
self.SetSizerAndFit(sizer)
self.Show(True)
app = wx.App()
frame = Frame(None, wx.ID_ANY, 'Image', '/path/to/file.png')
app.MainLoop()
所属していません StackOverflow