2017-05-12 16 views
2

ウィンドウの幅と高さを自分で入力しなくても、ウィンドウの中央に開くことができます。Tkinterウィンドウを開きます。 私はthisという素晴らしい答えを出しましたが、ウィンドウの寸法を指定する必要があります。 enter image description hereTkinter:幅と高さにコンテンツをラップさせながらウィンドウの開き位置を固定する方法

+0

あなたのアプリケーションはスクリーンの画面の中心にあるので、中心にあるコーナーの1つまたは実際のセンターが中央にあることを意味しますか? – WhatsThePoint

+0

私はさらに質問を説明するスクリーンショットを追加しました –

答えて

3

あなたはwinfo_width/winfo_height(またはwinfo_reqwidthwinfo_reqheight)はウィンドウサイズを取得するために使用することができます。代わりにこの enter image description here

は、私はこのような結果を取得したいです。

def center_window(win): 
    # win.update_idletasks() 
    screen_width = win.winfo_screenwidth() 
    screen_height = win.winfo_screenheight() 
    width = win.winfo_reqwidth() 
    height = win.winfo_reqheight() 

    x = screen_width/2 - width/2 
    y = screen_height/2 - height/2 
    root.geometry('%dx%d+%d+%d' % (width, height, x, y)) 

は、窓が完全に設定されていない場合にはwinfo_reqwidthwinfo_reqheightを使用しました。

またはwinfo_width/winfo_heightとコールする前にupdate_idletasksに電話してジオメトリ管理を実行できます。

+0

これは私が欲しいものを私に与えてくれません。 –

+1

@A_Matar 'winfo'への最初の呼び出しの直前に' root.update() 'を呼び出そうとしています。これは私にこのhttps://ibb.co/nmWbvkを提供します(スクリーンショットの更新された質問を確認してください。メソッド。ウィジェットの高さと幅、およびそれらがどのように格納されるかについての問題があります:http://stackoverflow.com/q/13327659/7051394 –

+0

@Rightleg元の回答を編集することができればうまくいきました。私は –

関連する問題