下圖的所有控制元件都沒有居中顯示,請問如何修改代碼讓它們都居中排布?

import tkinter as tk
class ReNamer(tk.Tk):
def __init__(self):
super().__init__()
self.value = 0
label_info = tk.Label(self, text="Please select a folder:")
btn_select = tk.Button(self, text="Click Me", width=8)
btn_check = tk.Button(self, text="Check", width=8)
label_show = tk.Label(self, text="{} file(s) renamed".format(self.value))
#opts = {'ipadx':10, 'ipady':10, 'padx':10, 'pady':10,'sticky':'nswe'}
label_info.grid(row=0, column=0, columnspan=2)
btn_select.grid(row=1, column=0)
btn_check.grid(row=1, column=2)
label_show.grid(row=2, column=0, columnspan=2)
if __name__ == "__main__":
root = ReNamer()
root.mainloop()
uj5u.com熱心網友回復:
把grid換成pack?
import tkinter as tk
class ReNamer(tk.Tk):
def __init__(self):
super().__init__()
self.value = 0
label_info = tk.Label(self, text="Please select a folder:")
btn_select = tk.Button(self, text="Click Me", width=8)
btn_check = tk.Button(self, text="Check", width=8)
label_show = tk.Label(self, text="{} file(s) renamed".format(self.value))
#opts = {'ipadx':10, 'ipady':10, 'padx':10, 'pady':10,'sticky':'nswe'}
# label_info.grid(row=0, column=0, columnspan=2)
# btn_select.grid(row=1, column=0)
# btn_check.grid(row=1, column=2)
# label_show.grid(row=2, column=0, columnspan=2)
label_info.pack()
btn_select.pack()
btn_check.pack()
label_show.pack()
if __name__ == "__main__":
root = ReNamer()
root.mainloop()
uj5u.com熱心網友回復:
這樣的話,兩個按鈕就上下排布了,我想要的是按鈕并排的效果。我把行(row)設定成3,列(column)設定成3,就可以了:
class ReNamer(tk.Tk):
def __init__(self):
super().__init__()
self.title("ReNamer V2.0")
self.value = 0
label_info = tk.Label(self, text="Please select a folder:")
btn_select = tk.Button(self, text="Click Me", width=10)
btn_check = tk.Button(self, text="Check", width=10)
label_show = tk.Label(self, text="{} file(s) renamed".format(self.value))
label_info.grid(row=0, column=1)
btn_select.grid(row=1, column=0, padx=50)
btn_check.grid(row=1, column=2, padx=50)
label_show.grid(row=2, column=1)
if __name__ == "__main__":
root = ReNamer()
root.mainloop()
但是按鈕之間的間距太寬了,怎樣縮小間距呢?
uj5u.com熱心網友回復:
用一個Frame把兩個按鈕放在Frame上進行布局
import tkinter as tk
class ReNamer(tk.Tk):
def __init__(self):
super().__init__()
self.title("ReNamer V2.0")
self.value = 0
label_info = tk.Label(self, text="Please select a folder:")
panel = tk.Frame(self)
btn_select = tk.Button(panel, text="Click Me", width=10)
btn_check = tk.Button(panel, text="Check", width=10)
btn_select.grid(row=1, column=0, padx=10)
btn_check.grid(row=1, column=2, padx=10)
label_show = tk.Label(self, text="{} file(s) renamed".format(self.value))
label_info.grid(row=0, column=1)
panel.grid(row=1, column=1)
label_show.grid(row=2, column=1)
if __name__ == "__main__":
root = ReNamer()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/98049.html
