Я пытаюсь создать два ярлыка Label, которые находятся в верхнем левом и верхнем правом углах моего тестового интерфейса. Проблема в том, что виджеты склеиваются, и я хочу, чтобы между ними было пространство.
В моих исследованиях я нашел предложения использовать липкие, padx и pady варианты. Но независимо от того, какие аргументы я передаю .grid(), я не могу создать пространство между моими виджетами. Я понимаю, что независимо от количества столбцов и строк между двумя виджетами, если указанные строки/столбцы пустые, то, как если бы они не существовали, а виджеты отображались вместе.
Используя метод .grid(), как я могу позиционировать виджетов так, чтобы они не склеивались?
Вот мой код:
#!/usr/bin/python
from Tkinter import *
class MyApp:
def __init__(self, parent):
self.myParent = parent
self.main_container = Frame(parent)
self.main_container.grid(row=0, rowspan=2, column=0, columnspan=4)
self.top_frame = Frame(self.main_container)
self.top_frame.grid(row=0, column=0, columnspan=4)
self.top_left = Frame(self.top_frame)
self.top_left.grid(row=0, column=0, columnspan=2)
self.top_right = Frame(self.top_frame)
self.top_right.grid(row=0, column=2, columnspan=2)
self.bottom_frame = Frame(self.main_container)
self.bottom_frame.grid(row=2, column=0, columnspan=4)
self.top_left_label = Label(self.top_left, text="Top Left")
self.top_left_label.grid(row=0, column=0, sticky='W', padx=2, pady=2)
self.top_right_label = Label(self.top_right, text="Top Right")
self.top_right_label.grid(row=0, column=4, sticky='E', padx=2, pady=2)
self.text_box = Text(self.bottom_frame, height=5, width=40)
self.text_box.grid(row=0, column=0)
root = Tk()
root.title("Test UI")
myapp = MyApp(root)
root.mainloop()
~~ Update ~~
Я пробовал следующее, но это не сработало:
self.top_left = Frame(self.top_frame)
self.top_left.grid(row=0, column=0, columnspan=2)
for c in range(2):
self.top_left.columnconfigure(c, weight=2)
self.top_right = Frame(self.top_frame)
self.top_right.grid(row=0, column=2, columnspan=2)
for c in range(2):
self.top_right.columnconfigure(c, weight=2)