1

背景の画像を使ってプログラムを作成しています。私がやろうとしているのは、フレームを画像に正確に合わせるようにすることです。

画像のサイズでフレームを開始するのは簡単です。

wx.Frame.__init__(self, parent, title=title, size=(500, 300))

ただし、これはウィンドウの境界線とヘッダーも考慮しているため、これは完全に正確ではありません。ピクセルサイズを手動で調整する以外に(とにかくOS間で一貫性がない)、どうすればよいですか?

編集:答えを見つけましたが、数時間は自己回答できないようです。その間...

Backdrop = wx.Bitmap("image.png")
self.SetClientSize((Backdrop.GetWidth(), Backdrop.GetHeight()))
4

1 に答える 1

1

サイザーを使用して同じことを実現できます。これにより、画像の横に他のアイテムを含めたり、フレームに合わせて拡大縮小したりする必要がある場合にも、作業が簡単になります。

これは、画像に合わせてサイズを変更するフレームの基本的な例です。

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()
于 2011-09-08T18:48:30.547 に答える