一度に複数のウィンドウに同じラベル(テキスト変数)を表示したいのですが、最初に作成したウィンドウの内容しか表示されません。ラベルはもう一方に表示されますが、基本的に空のフィールドです。
注目すべき興味深い点は、(およびその他の必要な変更)を置き換える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
が、逆の問題があります。
まず第一に、なぜそのままでは機能しないのか、説明したように機能させるにはどうすればよいのか。
2 つのウィンドウを持つことは一般的ではありませんが、1 つがメイン ディスプレイで、もう 1 つがコントロールであるため、このプロジェクトには必要です。