簡體   English   中英

Python:Tkinter框架之間的意外間隔

[英]Python : Unexpected spaces between Tkinter frames

我正在使用向導,正如標題所述,出現了意外的空格。

我試圖將青色和黃色框分別粘貼到它們的北,西,南和東邊界。 如果沒有左框架(元素+列表框+統一字體),它似乎可以按我的預期工作,但是在添加它時,會造成這些灰色間隙。

這是代碼和預覽:

from Tkinter import *
import ttk

Mafenetre = Tk()

frame3_root = Frame(Mafenetre, padx=10, pady=10)

frame3_frame_list = Frame(Mafenetre, bg='red')
frame3_frame_list.grid(row=0, column=0, rowspan=3, sticky=W + E + N + S)
Label(frame3_frame_list, text="Elements").pack(padx=20, pady=20)
frame3_listbox_font = Listbox(frame3_frame_list, exportselection=0)
frame3_listbox_font.bind('<<ListboxSelect>>')
frame3_listbox_font.pack()
Button(frame3_frame_list, text='Uniform Font').pack(pady=20, anchor='center')

frame3_frame_font_title = Frame(Mafenetre, bg='blue')
frame3_frame_font_label = Frame(Mafenetre, bg='cyan')
frame3_frame_font_combobox = Frame(Mafenetre, bg='yellow')
frame3_frame_font_title.grid(row=0, column=1, columnspan=2, sticky=W + E + N)
frame3_frame_font_label.grid(row=1, column=1, sticky=N + W + E + S)
frame3_frame_font_combobox.grid(row=1, column=2, sticky=W + E + N + S)

Label(frame3_frame_font_title, text="Font Family").pack(padx=20, pady=20)
Label(frame3_frame_font_label, text="Family:").pack(padx=15, pady=10, anchor='nw')
Label(frame3_frame_font_label, text="Style:").pack(padx=15, pady=10, anchor='nw')
Label(frame3_frame_font_label, text="Size:").pack(padx=15, pady=10, anchor='nw')
Label(frame3_frame_font_label, text="Color:").pack(padx=15, pady=18, anchor='nw')

fontVar = StringVar()
fontStyleVar = StringVar()
frame3_combobox_font = ttk.Combobox(frame3_frame_font_combobox, textvariable=fontVar)
frame3_combobox_font['values'] = ('Arial', 'Comic', 'Times New Roman')

frame3_combobox_font.current(1)
frame3_combobox_font.bind("<<ComboboxSelected>>")
frame3_combobox_font.pack(pady=10, anchor='w')

frame3_combobox_font_style = ttk.Combobox(frame3_frame_font_combobox, textvariable=fontStyleVar)
frame3_combobox_font_style['values'] = ('Bold', 'Italic')

frame3_combobox_font_style.current(1)
frame3_combobox_font_style.bind("<<ComboboxSelected>>")
frame3_combobox_font_style.pack(pady=10, anchor='w')

Spinbox(frame3_frame_font_combobox, from_=2, to=300).pack(pady=10, anchor='w')
Button(frame3_frame_font_combobox, text='Font Color').pack(pady=10, anchor='center')


Mafenetre.mainloop()

在此處輸入圖片說明

感謝您的時間和可能的答復。

藍色的“字體家族”框正下方的空間是已分配給“字體家族”標簽的空間。 frame3_frame_font_title不會“粘”在其空間的底部。 由於它的高度不足以填充其空間,因此該空間未使用。

您可以通過將frame3_frame_font_title的sticky設置為W + E + N + S來看到這一點(或者更容易閱讀並鍵入文字字符串"wens" 。這是否是解決方案,我不能說,因為我沒有不知道最終結果應該是什么樣子。

黃色和青色框下方的空間是根窗口的第2行,在最右邊的列中沒有任何內容。 它之所以是第2行是因為frame3_frame_list具有rowspan的3,這意味着它占用行0,1和2。

如何解決問題

您沒有確切說明要達到的目標,因此很難給出具體建議。 我的建議是重新開始,並嘗試一次解決一個問題。

例如,從一個空窗口開始。 添加六個幀-三行乘兩列。 讓所有這些完全符合您的需求。 請記住,配置行和列的權重,以使它們在調整窗口大小時適當地增大和縮小。

一旦有了這些,就可以開始為這些區域之一添加小部件。 例如,僅添加“元素”標簽,並確保它看起來正確。 然后添加“字體家族”標簽,依此類推。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM