33-wxpython多个frame之间的信息共享

本文介绍了一个使用Python和wxPython库创建的简单图形用户界面(GUI)计算器应用。该应用包括两个窗口,每个窗口都有一个文本框用于显示输入和输出,以及一个按钮。当按钮被点击时,它会更新相应的文本框。

https://blog.youkuaiyun.com/xyisv/article/details/78576932

https://blog.youkuaiyun.com/tianmaxingkong_/article/details/53326463

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/10/27 15:19
# @Author  : ystraw
# @Site    :
# @File    : Calculator.py
# @Software: PyCharm Community Edition
# @function:

import wx
import math

class Calculator(wx.Frame):
    def __init__(self, update):
        wx.Frame.__init__(self, None, -1, 'ystraw_onw',
                size=(400, 500),  pos=(500, 100))
        self.panel = wx.Panel(self) #创建画
        self.update = update
        #创建输入文本框
        self.textprint = wx.TextCtrl(self.panel, wx.NewId(), 'ysong', size = (400, 55),  style=wx.TE_MULTILINE | wx.TE_READONLY)
        #创建button
        button = wx.Button(self.panel, wx.NewId(), 'one' , size=(100, 100), pos = (50 , 100))  # 将按钮添加到画板
        self.Bind(wx.EVT_BUTTON, self.exchang, button)

    def exchang(self, event):
        button = event.GetEventObject()
        self.textprint.SetValue('one')
        self.update(2)

class frame2(wx.Frame):
    def __init__(self, update):
        wx.Frame.__init__(self, None, -1, 'ystraw_two',
                size=(400, 500),  pos=(500, 100))
        self.panel = wx.Panel(self) #创建画
        self.update = update
        #创建输入文本框
        self.textprint = wx.TextCtrl(self.panel, wx.NewId(), 'yyy', size = (400, 55),  style=wx.TE_MULTILINE | wx.TE_READONLY)
        #创建button
        button = wx.Button(self.panel, wx.NewId(), 'two' , size=(100, 100), pos = (50 , 100))  # 将按钮添加到画板
        self.Bind(wx.EVT_BUTTON, self.exchang, button)

    def exchang(self, event):
        button = event.GetEventObject()
        self.textprint.SetValue('two')
        self.update(1)

class MyApp(wx.App):
  def OnInit(self):
    #创建窗口时要讲下面的函数一起传过去,这样在其它函数里面才能调用公共的函数,起到信息共享的效果
    self.myframe = Calculator(self.update)
    self.myframe2 = frame2(self.update)
    self.SetTopWindow(self.myframe)
    self.myframe.Show(True)
    self.myframe2.Show(True)
    return True
  #作为多个窗口之间的媒介
  def update(self, type):
      if type == 1:
         self.myframe.Show(False)
      else:
          self.myframe2.Show(False)
if __name__ == '__main__':
    app = MyApp(0)
    app.MainLoop()

  

转载于:https://www.cnblogs.com/zhumengdexiaobai/p/9911849.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值