pyhton を使用してグラフィカル インターフェイスを作成するのは初めてで、親と子の間のリンクを理解するのが困難です。
最初に別のスレッドでルート ウィンドウを作成します。
import tkinter as tk
import threading as th
class GUI(th.Thread):
def __init__(self):
th.Thread.__init__(self)
self.root = tk.Tk()
self.gp = MainFrame(self.root)
def start(self):
self.root.mainloop()
def stop(self):
self.root.destroy()
このクラスのコンストラクターは、メイン フレームのコンストラクターを呼び出します。
class MainFrame(tk.Frame):
def __init__(self,parent):
tk.Frame.__init__(self,parent)
self.x=my_label(self)
self.up=my_update(self)
self.grid()
このメイン フレームには、2 つの単純な要素しかありません。それらのクラスは次のとおりです。
class my_label(tk.Frame):
def __init__(self,parent):
tk.Frame.__init__(self,parent)
self.l = tk.Label(self,text="some text")
self.l.grid()
self.grid()
class my_update(tk.Frame):
def __init__(self,parent):
tk.Frame.__init__(self,parent)
self.b=tk.Button(self,text="update",command=self.ButtonPushed)
self.b.grid()
self.grid()
def ButtonPushed(self):
# here is my problem...
x
これを行うとうまくいきますが、更新ボタンをクリックすると、 ( で)変更したいと思いますMainFrame
。つまり、子から、他の親の子の 1 つを変更したいのですが、どうすればそれを行うことができますか?
副次的な質問: 私のグラフィカル インターフェイスの一般的な構造は正しいように見えますか? つまり、 letmy_update
とmy_label
から継承するのは正しいtk.Frame
ですか?