wxPython之按下按钮,改变图片

  本文将实现的功能如下:GUI中按下按钮,就能改变图片。首先有下面的GUI:
  这里写图片描述
当按下按钮“将北京换成广州”后,“北京”会改成“广州”,并且图片也变成广州的图片,如下图:
  这里写图片描述
  其Python源代码如下:

import wx  
#创建类 
class ChangeFrame(wx.Frame): 
    #初始化
    def __init__(self):
        #继承父类的__init__()函数
        wx.Frame.__init__(self, None, -1, 'Change Picture',size=(400, 360))
        self.InitUI() 
        self.Centre() 
        self.Show()

    def InitUI(self):
        #创建面板
        panel = wx.Panel(self, -1)
        #利用wxpython的GridBagSizer()进行页面布局
        sizer = wx.GridBagSizer(10, 20) #列间隔为10,行间隔为20      
        #添加上海字段,并加入页面布局,为第一行,第一列
        text1 = wx.StaticText(panel, label="上海") 
        sizer.Add(text1, pos = (0, 0), flag=wx.ALL, border=5)
        #获取shanghai.png图片,转化为Bitmap形式,添加到第一行,第二列
        image1 = wx.Image('G://shanghai.png', wx.BITMAP_TYPE_PNG).Rescale(320, 120).ConvertToBitmap() 
        bmp1 = wx.StaticBitmap(panel, -1, image1) #转化为wx.StaticBitmap()形式
        sizer.Add(bmp1, pos=(0,1), flag=wx.ALL, border=5)
        #添加北京字段,并加入页面布局,为第二行,第一列
        self.text2 = wx.StaticText(panel, label="北京") 
        sizer.Add(self.text2, pos=(1,0), flag=wx.ALL, border=5) 
        #获取beijing.png图片,转化为Bitmap形式,添加到第二行,第二列
        image2 = wx.Image('G:\\beijing.png', wx.BITMAP_TYPE_PNG).Rescale(320, 120).ConvertToBitmap() 
        self.bmp2 = wx.StaticBitmap(panel, -1, image2) #转化为wx.StaticBitmap()形式
        sizer.Add(self.bmp2, pos=(1,1), flag=wx.ALL, border=5)
        #添加登录按钮,并加入页面布局,为第四行,第2列
        btn = wx.Button(panel, -1, "将北京换成广州")
        sizer.Add(btn, pos=(2,1), flag=wx.ALL, border=5)
        #为登录按钮绑定change_picture事件
        self.Bind(wx.EVT_BUTTON, self.change_picture, btn)
        #将Panmel适应GridBagSizer()放置
        panel.SetSizerAndFit(sizer)

    #定义文字及图片转换函数
    def change_picture(self, event):
        #将文字“北京”换成“广州”
        self.text2.SetLabel("广州")
        #获取广州的图片,转化为Bitmap形式
        image = wx.Image('G:\\guangzhou.png', wx.BITMAP_TYPE_PNG).Rescale(320, 120).ConvertToBitmap()
        #更新GridBagSizer()的self.bmp2
        self.bmp2.SetBitmap(wx.BitmapFromImage(image))
#主函数        
if __name__ == '__main__':  
    app = wx.App()  
    frame = ChangeFrame()   
    app.MainLoop()



  本次分享到此结束,欢迎大家交流与批评~~

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值