Определение размера рамки для изображения в WxPython - PullRequest
1 голос
/ 08 сентября 2011

Я делаю программу с изображением для фона, и я пытаюсь сделать так, чтобы рамка точно соответствовала изображению.

Легко инициировать рамку с размерамиизображение:

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

, но поскольку это также учитывает границы и заголовок окна, это не совсем точно.Если не считать ручной регулировки размера пикселя (который в любом случае не будет соответствовать кросс-ОС), что я могу сделать?

Редактировать: я нашел ответ, но, похоже, я не могу самостоятельноответить на несколько часов.А пока ...

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

1 Ответ

1 голос
/ 08 сентября 2011

Вы можете сделать то же самое с помощью классификатора, который также упростит задачу, если вам когда-нибудь понадобится включить другие элементы рядом с изображением и контролировать их масштаб с рамкой.

Вот базовый примеррамка, которая изменяет размеры, чтобы соответствовать изображению.

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()
...