如何在tkinter python中将子窗口的值共享到主窗口而不破坏子窗口

问题描述 投票:0回答:1

我正在开发一个程序,它可以在子窗口中接受用户的输入并显示输入宽度的彩色标签。但我无法在不破坏子窗口的情况下获取输入

我首先尝试使用函数,但经过研究后,我发现类很有用,但仍然无法接受输入。请有人帮忙

from tkinter import *

rootx = Tk("main")
rootx.title("main")
t = True
class minwindow:
 def __init__(self, window):
  
  
  self.root = Toplevel(window)
  self.root.minsize(100,100)
  self.root.title("mini")
  self.i = IntVar()
  self.A = Entry(self.root, textvariable=self.i, width=8)
  self.A.pack(pady = 9)
  self.root.mainloop()

 



 def show(self):
     self.i = int(self.A.get())
     self.i.set(self.i)
     return self.i
 #def end(self): return  


 


#minwindow("mini")
m = minwindow(rootx)
w = m.show
a = Label(rootx, bg="green", width= w)
a.pack()
#a.config()
]rootx.mainloop()

python python-3.x tkinter tkinter-entry
1个回答
0
投票

如果我做对了,就像这样,第二个窗口会更改主窗口上的标签。

import tkinter as tk
from tkinter import ttk


class Window(tk.Toplevel):
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent
        self.geometry('300x100')
        self.title('Toplevel Window')

        ttk.Button(self, text='Close', command=self.destroy).pack(expand=True)
        ttk.Button(self, text="Show App Msg", command=self.parent.msg).pack()
    
   
  

class App(tk.Tk):
    
    def __init__(self):
        super().__init__()

        self.geometry('300x200')
        self.title('Main Window')

        # place a button on the root window
        ttk.Button(self, text='Open a window', command = self.open_window).pack(expand=True)
        self.label_var = tk.StringVar()
        self.label = tk.Label(self, textvariable = self.label_var).pack()
        
    def open_window(self):
        window = Window(self)
        window.grab_set()

    def msg(self):
        self.label_var.set('Hello World')
        
if __name__ == "__main__":
    app = App()
    app.mainloop()

我改编自此代码

© www.soinside.com 2019 - 2024. All rights reserved.