一、方法一:发起方主动
1.1父窗体:
添加控件Lable,Edit,Button
1.2父窗体代码
import os
from glcl import *
# 需要引入子窗体类
from Unit2 import *
class Form1(Form):
def __init__(self, owner):
self.Label1 = Label(self)
self.Button1 = Button(self)
self.Edit1 = Edit(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
self.Button1.OnClick = self.Button1Click
def Button1Click(self, Sender):
# 创建子窗体,并设置所有者为当前窗体
self.Frm2=Form2(self)
# 按层级传递给子窗体下的标签
self.Frm2.label1.Caption=self.Edit1.Text
self.Frm2.Show()
2.1子窗体
添加控件Lable,Edit,Button
2.2 子窗体代码
import os
from glcl import *
class Form2(Form):
def __init__(self, owner):
self.Button1 = Button(self)
self.Edit1 = Edit(self)
self.Label1 = Label(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit2.pydfm"))
self.Button1.OnClick = self.Button1Click
def Button1Click(self, Sender):
# 直接用self.Owner来指向父窗体的实例
self.Owner.Label1.Caption=self.Edit1.Text
二、方法二:接收方主动
子窗体代码
import os
from glcl import *
class Form2(Form):
def __init__(self, owner):
self.Button1 = Button(self)
self.Edit1 = Edit(self)
self.Label1 = Label(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit2.pydfm"))
self.Button1.OnClick = self.Button1Click
# 在初始化时就直接取得父窗体的控件内容,注意是小写的owner,是父级的实例
self.Label1.Caption=owner.Edit1.Text
三、需要字典、列表、对象等作为参数
1 在父窗体中初始化中设置变量
import os
from glcl import *
from Unit2 import *
class Form1(Form):
def __init__(self, owner):
self.Label1 = Label(self)
self.Button1 = Button(self)
self.Edit1 = Edit(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
self.Button1.OnClick = self.Button1Click
# 需要传递的内容,此处以数组为例
self.ParaDic=[1,2,3,4]
def Button1Click(self, Sender):
self.Frm2=Form2(self)
self.Frm2.Show()
2 在子窗体中直接调用
import os
from glcl import *
class Form2(Form):
def __init__(self, owner):
self.Button1 = Button(self)
self.Edit1 = Edit(self)
self.Label1 = Label(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit2.pydfm"))
self.Button1.OnClick = self.Button1Click
i=0
# 用owner来确认父窗体
for item in owner.ParaDic:
i+=item
self.Label1.Caption=str(i)