2016-11-02 13 views
0

Python ttkコードの開発中に別の最上位ウィンドウを使用していて、ルートからデバッグ最上位ウィンドウにメッセージを送信したいとします。ここで Python Tkinterまたはttk、他のトップレベルウィンドウにテキストを送信

は私のMyFunctions.pyでいくつかの擬似コード

from Tkinter import * 
import ttk 
from MyFunctions import * # some code I wrote (see below) 
root = Tk() 
SetupMyFunct(root)   # see below 
de_bug = Toplevel(root) 
dbug_frame = Frame(de_bug).grid() 
debug_string1 = StringVar() 
debug1_window = ttk.Label(dbug_frame, textvariable = debug_string1).grid() 
root.mainloop() 

です:

from Tkinter import * 
import ttk 
def SetupMyFunct(root): 
    f = ttk.Frame(root).grid() 
    w = Frame(f).grid() 

この時点で、私は自動的にde_bugウィンドウで更新されるように、いくつかのテキストを送信したいと思いますが、私ここからどこに行くのか分かりません。

助けてください?マーク。 。

答えて

1

ジオメトリ管理メソッドを連鎖させると、それらのウィジェットへの参照が保持されないようになります。これらのメソッドは、Noneをそれらの変数に格納するため返します。あんな事はしないで。これにより、ウィジェットへの参照を扱うようなことができます。具体的にはdebug1_windowウィジェットの親オブジェクトとしてdbug_frameを指定できます。

from Tkinter import * 
import ttk 
from MyFunctions import * 
root = Tk() 
f,w = SetupMyFunct(root) 
de_bug = Toplevel(root) 
dbug_frame = Frame(de_bug) 
dbug_frame.grid() 
debug_string1 = StringVar() 
debug1_window = ttk.Label(dbug_frame, textvariable=debug_string1) 
debug1_window.grid() 
root.mainloop() 

 

from Tkinter import * 
import ttk 
def SetupMyFunct(root): 
    f = ttk.Frame(root) 
    f.grid() 
    w = Frame(f) 
    w.grid() 
    return f,w 
関連する問題