gpt4 book ai didi

python - 为sizer wxpython 设置拉伸(stretch)背景图像?

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:04 25 4
gpt4 key购买 nike

我想知道如何使用 wxpython 将拉伸(stretch)的背景图像放入 sizer 中。

我正在看这个教程: http://www.blog.pythonlibrary.org/2010/03/18/wxpython-putting-a-background-image-on-a-panel/

但图像没有调整大小。

import wx

########################################################################
class MainPanel(wx.Panel):
""""""

#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent=parent)
self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
self.frame = parent

sizer = wx.BoxSizer(wx.VERTICAL)
hSizer = wx.BoxSizer(wx.HORIZONTAL)

for num in range(4):
label = "Button %s" % num
btn = wx.Button(self, label=label)
sizer.Add(btn, 0, wx.ALL, 5)
hSizer.Add((1,1), 1, wx.EXPAND)
hSizer.Add(sizer, 0, wx.TOP, 100)
hSizer.Add((1,1), 0, wx.ALL, 75)
self.SetSizer(hSizer)
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)

#----------------------------------------------------------------------
def OnEraseBackground(self, evt):
"""
Add a picture to the background
"""
# yanked from ColourDB.py
dc = evt.GetDC()

if not dc:
dc = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
dc.SetClippingRect(rect)
dc.Clear()
bmp = wx.Bitmap("Untitled.png")
dc.DrawBitmap(bmp, 0, 0)


########################################################################
class MainFrame(wx.Frame):
""""""

#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, size=(600,450))
panel = MainPanel(self)
self.Center()

########################################################################
class Main(wx.App):
""""""

#----------------------------------------------------------------------
def __init__(self, redirect=False, filename=None):
"""Constructor"""
wx.App.__init__(self, redirect, filename)
dlg = MainFrame()
dlg.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
app = Main()
app.MainLoop()

这就是代码,我不确定 wxpython 是否可以调整大小。所以基本上我只是希望能够使用图片作为 sizer 的背景,但是将图像拉伸(stretch)到 sizer 大小。

谢谢

最佳答案

那篇文章并不是要展示如何拉伸(stretch)或调整图像大小。为此,您可能需要 Python 成像库 (PIL)。然后,当您调整大小时,您可以获取框架的新大小并使用它来计算如何缩放图像。请参阅以下链接下载 PIL:http://www.pythonware.com/products/pil/

关于python - 为sizer wxpython 设置拉伸(stretch)背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com