2017-05-17 11 views
1

Tkinterのリファレンスからわかるように、親ウィンドウには一時的な子ウィンドウが描画されています。これはLinuxでは動作しますが、Windowsでは動作しません(7)。Python 2.7/Windows 7/Tkinter:親を中心とした一時的な子ウィンドウのウィンドウ

これが発生する理由はありますか?

私はGUIを手動で.geometry()メソッドで中央に置くことができますが、GUIがいくつかの値を計算しているとき(例えば1秒間)、GUIが表示されない小さなウィンドウがあり、 .withdrawメソッドを呼び出すときでさえも。

ありがとうございます!

# -*- coding: utf-8 -*- 

import Tkinter as tk 
import ttk 

class Parent(tk.Tk): 

    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 
     self.txt = tk.Text(master=self) 
     self.txt.pack() 
     self.btn = ttk.Button(master=self, text='Show Child', 
           command=self.show) 
     self.btn.pack() 
     self.mainloop() 

    def show(self, *args): 
     Child(self) 


class Child(tk.Toplevel): 

    def __init__(self, master, *args, **kwargs): 
     tk.Toplevel.__init__(self, *args, **kwargs) 
     self.txt = tk.Text(master=self) 
     self.txt.pack() 

Parent() 

答えて

0

オーケー、私はこれを次のように解決:

  • .withdraw()をウィンドウ
  • は希望UI
  • .update_idletasks()を得るために、いくつかの計算を行う
  • 親ウィンドウの上を中心に .geometry()を設定
  • 最後に.deiconify()ウィンドウ。
関連する問題