仕様:
Python2.7.1
のTkinter(Tkのバージョン8.5)
のWindows7
IDLE 2.7.1複数のTkinterのWindowsとのCheckbuttons
私は撤回し、 'スポーン' は、2つの窓というプログラムをコーディングしています両方を破壊し、一方を破壊し、他方を脱結合して(メインループに入る)。
この配置は、残りのウィンドウのCheckbuttonを妨害しています。
例:
temp = Tk()
temp.withdraw()
root = Tk()
root.withdraw()
temp.destroy()
root.mainloop()
(それは珍しいようだが、「TEMP」ウィンドウがルートウィンドウの建物の間に、発生した問題が表示されるように、それはこのように設定されます)。
しかし、1つのプログラムが2つのTkinterウィンドウを処理するとすぐに、 Checkbuttonの機能(ルート内)がウィンドウの外に出るようです。チェックボタンがチェックされている場合
def ClickAButton():
print Toggle.get()
Toggle = IntVar()
Checkbutton(root, text = "Me is broke", variable = Toggle).pack()
ClickAButton
Toggle.get()が新しいウィンドウを追加するため、しかし、それ以外の場合は0
1を返す必要があり、Toggle.getは常に0
(Iを返します一時「チェックボタンはせずに正常に動作します
など、
リネーム変数{これはそれ自身の奇妙なerrosが表示されます}コードを再フォーマットしようとしたVEの 『』ウィンドウ。
『TEMP』ウィンドウが前に破壊されますチェックボタンはeです、割り当てられたVEN詰め、
または 'ルート' でもメインループに入る)
全体の例:!何らかの理由で
temp = Tk()
temp.withdraw()
root = Tk()
root.withdraw()
if 'certain condition':
root.destroy()
temp.deiconify()
temp.mainloop()
else:
temp.destroy()
Toggle = IntVar()
Checkbutton(root, text = "Why I only return 0?", variable = Toggle).pack()
root.deiconify()
root.mainloop()
、
チェックボタンは常にチェックしても、0を返します。
Tkinterではマルチスレッドの問題と思われます。
ここで何かできることはありますか?
(実際のコーディングは巨大です。私はそれをすべて別のGUIモジュールに切り替えるつもりはありません) :|
大変感謝しています。
(私は今年のスタートをプログラミング始めた。私はいくつか恐ろしくnoobishミスを犯してしまった場合!
はご容赦ください)
私は、複数のウィンドウにTkinterを使用することが「不愉快」であると感じていました。 しかし、他のすべてのウィジェットは完全に動作します。 これはただ1つの悪いCheckbuttonです。 そんなに変わるのはずいぶん残念です。 :( –
ああ、Toplevelを統合しても実際にはあまり変化はありません。 ありがとう! –