wxpython窗体之间传递参数
如何界面存在frame1与frame2,通过frame1打开页面frame2,并将frame2的值传递给frame1

可以使用回调函数传值
参考具体代码如下:
# -*- coding: utf-8 -*- ###########################################################################
## Python code generated with wxFormBuilder (version Jun 17 2015)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
########################################################################### import wx
import wx.xrc ###########################################################################
## Class MyFrame1
########################################################################### class MyFrame1( wx.Frame ): def __init__(self, parent):
wx.Frame.__init__( self, parent, id=wx.ID_ANY, title=u"窗体1", pos=wx.DefaultPosition, size=wx.Size( 250, 100 ),
style=wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) gbSizer1=wx.GridBagSizer( 0, 0 )
gbSizer1.SetFlexibleDirection( wx.BOTH )
gbSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_button1=wx.Button( self, wx.ID_ANY, u"打开第二个窗体", wx.DefaultPosition, wx.DefaultSize, 0 )
gbSizer1.Add( self.m_button1, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 ) self.m_staticText1=wx.StaticText( self, wx.ID_ANY, u"回调文本框", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText1.Wrap( -1 )
gbSizer1.Add( self.m_staticText1, wx.GBPosition( 1, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 ) self.m_textCtrl1=wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
gbSizer1.Add( self.m_textCtrl1, wx.GBPosition( 1, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 ) self.SetSizer( gbSizer1 )
self.Layout() self.Centre( wx.BOTH ) # Connect Events
self.m_button1.Bind( wx.EVT_BUTTON, self.button1 ) def __del__(self):
pass # Virtual event handlers, overide them in your derived class
def button1(self, event):
myflame2 =MyFrame2(self.CallBack) # 函数地址作为参数传递
myflame2.Show() def CallBack(self, value): # value参数为回调过来的值
self.m_textCtrl1.SetValue( value ) ###########################################################################
## Class MyFrame2
########################################################################### class MyFrame2( wx.Frame): def __init__(self, call):
wx.Frame.__init__( self,None,title=u"窗体2", pos=wx.DefaultPosition, size=wx.Size( 250, 100 ),
style=wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) gbSizer2=wx.GridBagSizer( 0, 0 )
gbSizer2.SetFlexibleDirection( wx.BOTH )
gbSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_button2=wx.Button( self, wx.ID_ANY, u"传递给窗体1", wx.DefaultPosition, wx.DefaultSize, 0 )
gbSizer2.Add( self.m_button2, wx.GBPosition( 0, 0 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 ) self.m_textCtrl2=wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
gbSizer2.Add( self.m_textCtrl2, wx.GBPosition( 0, 1 ), wx.GBSpan( 1, 1 ), wx.ALL, 5 ) self.call=call self.SetSizer( gbSizer2 )
self.Layout() self.Centre( wx.BOTH ) # Connect Events
self.m_button2.Bind( wx.EVT_BUTTON, self.button2 ) def __del__(self):
pass # Virtual event handlers, overide them in your derived class
def button2(self, event):
self.call( self.m_textCtrl2.GetValue() ) # 传递值
pass ###########################################################################
app=wx.App()
main=MyFrame1( None )
main.Show()
app.MainLoop()
wxpython窗体之间传递参数的更多相关文章
- C#-窗体之间传递参数
主窗体: ].Value.ToString(); AddRoomTypeFrm AddRoomTypeFrm = new AddRoomTypeFrm(getroomtypeid); AddRoomT ...
- mvc中view与controll之间传递参数时,可以使用url进行传递
mvc中view与controller之间传递参数时,可以使用url进行传递,但是在url的地址中需要加上“id=123”这样的东西才行. 具体如代码: window.location.href = ...
- JSP页面之间传递参数的方法有哪些?
JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接
- ASP.NET网页之间传递参数与值
ASP.NET网页之间传递参数与值,方法很多,可以使用Application,Cookie,Session,或是Querystring等等.由于Insus.NET开发的程序中,多数是在后台之间进行参数 ...
- JS多个函数之间传递参数问题
JS多个函数之间传递参数的一个重要思想是在页面定义一个隐藏域,当第一个函数请求到数据时候修改隐藏域的值,第二个函数用jQuery的选择器选择页面中隐藏域的值. 比如: 页面中定义一个隐藏的页号. &l ...
- Android学习总结——Activity之间传递参数
核心内容:一.在 Activity 之间传递简单数据二.在 Activity 之间传递复杂数据 三.在 Activity 之间传递自定义值对象 软件环境:Android Studio 一.在 ...
- Android——软键盘操作+fragment之间传递参数+TextView限制字数,显示"..."
原文地址: Android 手动显示和隐藏软键盘 Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果) Android Fragment传递参数_Fragm ...
- bean shell之间传递参数
BeanShell PostProcessor 向 BeanShell断言 传递参数 断言成功:
- SpringMvc中两个Controller类之间传递参数的方法
使用SpringMvc框架,在访问ControllerA的时候,将A里面的参数传递到ControllerB中.适用于同一框架下两个不同Controller或者由rpc(dubbo)连接的两个工程里的C ...
- angular中控制器之间传递参数的方式
在angular中,每个controller(控制器)都会有自己的$scope,通过为这个对象添加属性赋值,就可以将数据传递给模板进行渲染,每个$scope只会在自己控制器内起作用,而有时候需要用到其 ...
随机推荐
- [CF1364E] X-OR
X-OR 题面翻译 题目描述 本题是交互题. 有一个固定的长度为 \(n\) 的排列 \(P\),其值域为 \([0,n-1]\),你可以进行不超过 \(4269\) 次询问,之后你需要输出这个排列 ...
- [ABC265F] Manhattan Cafe
Problem Statement In an $N$-dimensional space, the Manhattan distance $d(x,y)$ between two points $x ...
- 华企盾DSC防泄密申请解密、外发等失败常见处理方法
1.检查文件是否已经打开或被占用,以及文件的权限不是只读(错误代码32或5,这种情况比较常见) 2.系统用户名不能带特殊字符.老版本文件路径中不能含特殊字符(包括备份路径) 3.备份路径是否有读写权限 ...
- vue3 + element-plus 的 upload + axios + django 文件上传并保存
之前在网上搜了好多教程,一直没有找到合适自己的,要么只有前端部分没有后端,要么就是写的不是很明白.所以还得靠自己摸索出来后,来此记录一下整个过程. 其实就是不要用默认的 action,要手动实现上传方 ...
- Unity3D学习笔记5——创建子Mesh
目录 1. 概述 2. 详论 2.1. 实现 2.2. 解析 3. 参考 1. 概述 在文章Unity3D学习笔记4--创建Mesh高级接口通过高级API的方式创建了一个Mesh,里面还提到了一个Su ...
- 日常Bug排查-集群逐步失去响应
前言 日常Bug排查系列都是一些简单Bug排查.笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_ Bug现场 最近碰到一个产线问题,表现为某个应用集群所有的节点全部下线了.导致上游调用全部 ...
- Java 给PPT中的表格设置分布行和分布列
在表格中可设置"分布行"或"分布列"将行高.列宽调整为协调统一的高度或宽度,是一种快速实现表格排版的方法之一.下面,通过Java后端程序代码介绍如何在PPT幻灯 ...
- 18篇文章系统解读:中台规划如何撬动企业IT基础设施转型升级
摘要:通过这个系列,让大家对中台的价值.针对的问题痛点.中台规划的方法思路和技巧.一些中台业务实践有个基本的认识,让客户清楚的意识到企业中台的业务价值,进而通过企业中台规划牵引客户IT基础设施投资. ...
- 带你彻底搞懂高性能网络模式Reactor 和 Proactor
摘要:无论是 Reactor,还是 Proactor,都是一种基于「事件分发」的网络编程模式,区别在于 Reactor 模式是基于「待完成」的 I/O 事件,而 Proactor 模式则是基于 ...
- 百万奖池角逐,华为云IoT边缘带你看懂“边缘计算开发者大赛”
摘要:2022年9月1日,第二届边缘计算开发者大赛正式启动. 2022年9月1日,第二届边缘计算开发者大赛正式启动! 本届大赛由华为云参与承办,中国信息通信研究院.工业互联网产业联盟.边缘计算产业联盟 ...