
今回は、Pythonのtkinterで作ったウインドウが画面中央に出るようにしたサンプルです。
Pythonのtkinterのウインドウを画面中央に出す
ボタンを押したら次のウインドウを画面中央で出す
from tkinter import *
from tkinter import ttk
nextflg=0
def push_button():
global nextflg
nextflg=1
win.destroy()
#-----------------------
#ウインドウ1
win = Tk()
win.title('window1')
button = ttk.Button(win, text='次へ', command=push_button)
button.grid(row=1,column=1)
button.grid_configure(padx=20, pady=15)
win.update_idletasks()
ww=win.winfo_screenwidth()
lw=win.winfo_width()
wh=win.winfo_screenheight()
lh=win.winfo_height()
win.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) )
win.mainloop()
if nextflg==1:
#-----------------------
#ウインドウ2
win = Tk()
win.title('window2')
label = ttk.Label(win, text='第二ウインドウ')
label.grid(row=1,column=1)
win.update_idletasks()
ww=win.winfo_screenwidth()
lw=win.winfo_width()
wh=win.winfo_screenheight()
lh=win.winfo_height()
win.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) )
win.mainloop()
画面中央にボタンがあるウインドウを作成し、そのボタンを押したら第二ウインドウが作成されます。
この「次へ」ボタンを押すとウインドウが消え
新しいウインドウが出ます。
中央への配置はディスプレイのサイズからウインドウサイズを計算して配置します。
tkinterで作ったウインドウを閉じる
win.destroy()
tkinterオブジェクト.destroy()
ウインドウを閉じます。
サンプルでは次へボタンを押したらウインドウが閉じるようにしています。
tkinterのウインドウに設定を反映する
win.update_idletasks()
tkinterオブジェクト.update_idletasks()
tkinterオブジェクトにgrid等で設定したレイアウトを反映します。
現在のディスプレイの横幅を取得する
ww=win.winfo_screenwidth()
ww=win.winfo_screenwidth()
画面の横幅=tkinterオブジェクト.winfo_screenwidth()
現在のディスプレイの横幅が数字として返ってきます。
現在のディスプレイの縦幅を取得する
wh=win.winfo_screenheight()
画面の縦幅=tkinterオブジェクト.winfo_screenheight()
現在のディスプレイの縦幅が数字として返ってきます。
現在のウインドウの横幅を取得する
lw=win.winfo_width()
ウインドウの横幅=tkinterオブジェクト.winfo_width()
現在のウインドウの横幅が数字として返ってきます。
現在のウインドウの縦幅を取得する
lh=win.winfo_height()
ウインドウの横幅=tkinterオブジェクト.winfo_height()
現在のウインドウの横幅が数字として返ってきます。
ウインドウの位置と大きさを指定する
win.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) )
ウインドウのオブジェクト.geometry( ‘ウインドウ横幅xウインドウ縦幅+ウインドウ左の座標+ウインドウ上の座標’ )
座標を指定する文字列を入力します。
まとめ
チェックボックスのウインドウ内での位置や幅などはPythonでラベルとエディットボックスを付ける方法でやったように設定する事が出来ます。