带有图像的按钮未显示在wxPython中

时间:2014-03-19 09:25:25

标签: python python-2.7 user-interface wxpython

我在Windows 7操作系统上使用python v2.7和wxPython v3.0。在我的应用程序中,我有一个名为myPanel的面板。我在myPanel上有一个图片作为背景,图片名称为green.bmp myPanel包含一个名为myButton的按钮。此myButton还包含一个名为blue.bmp

的背景图片

问题:我执行代码时myButton上没有看到myPanel。我无法弄明白为什么它不起作用。任何帮助将不胜感激。 如果我不将图片用作myPanel的背景,则可以看到myButton

代码:可以从此处Green.bmpBlue.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()

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

我认为这是一个育儿问题。您需要将按钮的父级设置为 self.bitmap2 ,而不是 myPanel 。否则,这两个小部件将“叠加”在一起。

请参阅以下教程:

您还可以使用Widget Inspection Tool

来诊断此类事情