我在Windows 7操作系统上使用python v2.7和wxPython v3.0。在我的应用程序中,我有一个名为myPanel
的面板。我在myPanel
上有一个图片作为背景,图片名称为green.bmp
myPanel
包含一个名为myButton
的按钮。此myButton
还包含一个名为blue.bmp
问题:我执行代码时myButton
上没有看到myPanel
。我无法弄明白为什么它不起作用。任何帮助将不胜感激。 如果我不将图片用作myPanel
的背景,则可以看到myButton
!
代码:可以从此处Green.bmp和Blue.bmp下载图片。代码段如下:
import wx
class gui(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, None, id, title, size=(500,400))
myPanel = wx.Panel(self, -1, size=(300,200))
image_file1 = 'green.bmp'
image1 = wx.Image(image_file1, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
#---- Comment out the line below then the button is visible
self.bitmap2 = wx.StaticBitmap(myPanel, -1, image1, (0, 0))
myButton = wx.Button(myPanel, -1, size =(30,30), pos=(20,20))
image_file2 = 'blue.bmp'
image2 = wx.Image(image_file2, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.bitmap1 = wx.StaticBitmap(myButton, -1, image2, (0, 0))
if __name__=='__main__':
app = wx.App()
frame = gui(parent=None, id=-1, title="Test")
frame.Show()
app.MainLoop()
感谢您的时间!
答案 0 :(得分:1)
我认为这是一个育儿问题。您需要将按钮的父级设置为 self.bitmap2 ,而不是 myPanel 。否则,这两个小部件将“叠加”在一起。
请参阅以下教程:
您还可以使用Widget Inspection Tool
来诊断此类事情