LaoYuanPython 2019-06-03 08:43 采纳率: 25%
浏览 1075

Python tkinter图形界面BUTTON时间控制和编辑框返回值出现异常?

使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下:

import tkinter as tk
from tkinter import messagebox

def newwin(title='test',geometry='300x300'):
def ShowMessage():
tk.messagebox.showinfo(input.get())
window = tk.Tk()
window.title(title)
window.geometry(geometry)
input = tk.StringVar()
input.set('请输入任意内容!')

tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10)
entry_new_name = tk.Entry(window, textvariable=input)
entry_new_name.place(x=150, y=10)
btn_show = tk.Button(window, text='显示输入', command=ShowMessage)
btn_show.place(x=80, y=90)
btn_newwin = tk.Button(window, text='新弹窗', command=newwin)
btn_newwin.place(x=150, y=90)
btn_exit = tk.Button(window, text='退出', command=exit)
btn_exit.place(x=220, y=90)
return window
root = newwin()
root.mainloop()

上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,初始界面如下(编辑框有初始文字显示):
图片说明

编辑框输入内容后点击显示输入按钮后的窗口:
图片说明

但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示:
图片说明

且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。新弹窗编辑框输入内容后点击显示输入按钮后的窗口:
图片说明

关于以上代码,有如下几个问题:
1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来?
2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ?
3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决?
非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 18:36
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 flutter 编译web端出错,如何解决?
  • ¥20 使用AT89C51微控制器和MAX7219驱动器来实现0到99秒的秒表计数,有开始和暂停以及复位功能,请写出C语言程序
  • ¥15 51单片机 双路ad同步采样
  • ¥15 使用xdocreport 生成word
  • ¥15 请教怎么用MATLAB求坐标
  • ¥15 gradle整合es,在创建索引时报错
  • ¥15 关于模型训练的一个问题
  • ¥15 装了几千台服务器从来没遇到这种问题,哎看下哪位帮我解决吧
  • ¥15 单片机程序上的困难问题
  • ¥15 请教某软件缓存Ts文件破解合并mp4的方法