我正在开发一个程序,它可以在子窗口中接受用户的输入并显示输入宽度的彩色标签。但我无法在不破坏子窗口的情况下获取输入
我首先尝试使用函数,但经过研究后,我发现类很有用,但仍然无法接受输入。请有人帮忙
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()
如果我做对了,就像这样,第二个窗口会更改主窗口上的标签。
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()
我改编自此代码