为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 tkinter 中的子窗口对根窗口进行修改?

如何从 tkinter 中的子窗口对根窗口进行修改?

扬帆大鱼 2022-08-02 18:38:00
我正在尝试创建一个子窗口,允许您在主窗口中更改某些参数。我创建了一个函数,当被一个按钮调用时,会弹出一个选项菜单,用于选择要更改的选项,然后是一些输入框以输入要更改的内容。我的第一个想法是更改函数中的数据,然后返回它,但我认为这不起作用,因为触摸按钮即可调用该函数。有人有什么建议吗?
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

下面是一个简单的示例,说明如何直接更新根窗口和全局命名空间中的任何变量。它只是您在从按钮调用的函数中执行的操作的问题。


如果您有任何疑问,请告诉我。


import tkinter as tk



root = tk.Tk()

root.config(background='white')

root.geometry('250x100')


label_1 = tk.Label(root, text=0)

label_1.pack()

label_2 = tk.Label(root, text='test')

label_2.pack()



def toggle_root_bg():

    # check the color of the root window and toggle accordingly.

    if root['background'] == 'black':

        root.config(background='white')

    else:

        root.config(background='black')



def update_root_labels(one, two):

    # Apply argument values to the text fields of the labels defined in the global namespace.

    label_1.config(text=one)

    label_2.config(text=two)



def sub_window():

    # setting sub window variable name to be used with other widgets.

    top = tk.Toplevel(root)

    tk.Label(top, text='Provide a number: ').grid(row=0, column=0)

    tk.Label(top, text='Provide a string: ').grid(row=1, column=0)

    entry_1 = tk.Entry(top)

    entry_2 = tk.Entry(top)

    entry_1.grid(row=0, column=1)

    entry_2.grid(row=1, column=1)


    # create a sub function to get the current entry field values

    # then pass these values on to our update function.

    def submit_update():

        update_root_labels(entry_1.get(), entry_2.get())


    tk.Button(top, text='Update root labels', command=submit_update).grid(row=2, column=0)

    tk.Button(top, text='Toggle Root Background', command=toggle_root_bg).grid(row=3, column=0)



tk.Button(root, text='Open sub window', command=sub_window).pack()

root.mainloop()

以前:

//img1.sycdn.imooc.com//62e8feaa0001d21d05370126.jpg

后:

//img1.sycdn.imooc.com//62e8feb900010eb205290127.jpg

查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信