我想一次在多个窗口上显示相同的标签(文本变量),但它只会显示首先创建的窗口上的内容。标签出现在另一个上,但它基本上是一个空字段。
值得注意的是,如果我替换textvariable
为text
(和其他必要的更改),它将按预期显示静态文本。
下面的示例代码:
from tkinter import *
root = Tk()
root.overrideredirect(1)
root2 = Tk()
root2.protocol("WM_DELETE_WINDOW", exit)
class SubsLight(Frame):
def __init__(self, parent=None, **kw):
Frame.__init__(self, parent, kw)
self.T1Subs = 'A'
self.T2Subs = 'B'
self.T1Subsstr = StringVar()
self.T2Subsstr = StringVar()
self.Subset()
def Subset(self):
self.T1Subsstr.set(self.T1Subs)
self.T2Subsstr.set(self.T2Subs)
T1Sub = Label(root, textvariable=self.T1Subsstr, font=("Arial", 20), fg='#fff188188', bg='black', width=1, padx=5, pady=5)
T2Sub = Label(root, textvariable=self.T2Subsstr, font=("Arial", 20), fg='#fff188188', bg='black', width=1, padx=5, pady=5)
T1Sub.grid()
T2Sub.grid()
T12Sub = Label(root2, textvariable=self.T1Subsstr, font=("Arial", 20), fg='#fff188188', bg='black', width=1, padx=5, pady=5)
T12Sub.grid()
T12Sub = Label(root2, textvariable=self.T2Subsstr, font=("Arial", 20), fg='#fff188188', bg='black', width=1, padx=5, pady=5)
T12Sub.grid()
sub = SubsLight(root)
def main():
sub.grid()
root.mainloop()
if __name__ == '__main__':
main()
root2
我可以通过移动到上面来让标签显示在另一个窗口中,root
但是我遇到了相反的问题。
首先,为什么它不能按原样工作,以及如何让它像我描述的那样工作。
我意识到拥有两个窗口并不常见,但对于这个项目来说这是必要的,因为一个是主显示器,另一个是控件。