python子窗口返回数据给主窗口_tkinter 弹出窗口 传值回到 主窗口

本文介绍了如何在 Python 的 Tkinter 框架下,实现从子窗口向主窗口传递数据。分别展示了使用标准对话框和自定义窗口的两种方法,并提供了详细的代码示例。
摘要由CSDN通过智能技术生成

有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置。有两种选择

一、标准窗口

如果只对一个参数进行设置(或者说从弹出窗口取回一个值),那么可以使用simpledialog,导入方法:

from tkinter.simpledialog import askstring, askinteger, askfloat

完整例子

import tkinter as tk

from tkinter.simpledialog import askstring, askinteger, askfloat

# 接收一个整数

def print_integer():

res = askinteger("Spam", "Egg count", initialvalue=12*12)

print(res)

# 接收一个浮点数

def print_float():

res = askfloat("Spam", "Egg weight\n(in tons)", minvalue=1, maxvalue=100)

print(res)

# 接收一个字符串

def print_string():

res = askstring("Spam", "Egg label")

print(res)

root = tk.Tk()

tk.Button(root, text='取一个字符串', command=print_string).pack()

tk.Button(root, text='取一个整数', command=print_integer).pack()

tk.Button(root, text='取一个浮点数', command=print_float).pack()

root.mainloop()

二、自定义窗口

如果要设置的参数个数超过两个,那么tkinter提供的标准窗口就处理不了了。

这就需要自定义一个窗口,那么问题来了:怎样将自定义窗口中的数据传回主窗口?

百度查询,不外乎两种方法:全局变量(global)、对象变量([]、{}等),都不是我想要的。

然后,去 stackoverflow 逛了一下,综合了个问题的答案,得到两个本人比较满意的方案。

一种是松耦合,另一种是紧耦合

1)松耦合

说明:

主窗类,继承了 tk.Tk

弹窗类,继承了 tk.Toplevel

要点:

弹窗,将多个数据,打包,放入一个名为 username

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值