【问题标题】:Sizing a frame to an image in WxPython在 WxPython 中将帧大小调整为图像
【发布时间】:2011-11-13 04:57:36
【问题描述】:

我正在制作一个带有图像作为背景的程序,我想要做的是让框架精确地适合图像。

用图像的尺寸很容易启动框架:

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

但是因为这也考虑了窗口的边框和标题,所以这并不完全准确。没有手动调整像素大小(反正跨操作系统不一致),我该怎么办?

编辑:我找到了答案,但看起来我有几个小时无法自行回答。与此同时……

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

【问题讨论】:

    标签: image wxpython frame image-size


    【解决方案1】:

    您可以使用 sizer 完成同样的事情,如果您需要在图像旁边包含其他项目并控制它们如何随框架缩放,这也会使事情变得更容易。

    这是一个调整自身大小以适应图像的框架的基本示例。

    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-10-13
      • 2011-08-16
      • 1970-01-01
      • 2015-01-15
      • 2019-05-21
      • 2019-04-18
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多