Я пытаюсь настроить базовый графический интерфейс с двумя кнопками и некоторым количеством меток (возможно, 4 или около того).
У меня сложилось впечатление, что кнопки Tkinter имеют размер по умолчанию, который соответствует объему текста, содержащегося в кнопке.Однако, когда мои кнопки появляются на экране, они, кажется, занимают как можно большую часть экрана в зависимости от того, где я их размещаю.Вот мой код:
from tkinter import *
root = Tk()
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
screen_width2 = screen_width/1.3
screen_height2 = screen_height/1.3
a = str(int(screen_width2)) + "x" + str(int(screen_height2))
root.geometry (a)
root.title("Tester")
welcomeUser = Label(root, text ="Welcome User")
upload = Button(root, text="Upload")
run = Button(root, text="Run")
welcomeUser.place(bordermode=INSIDE, relheight= 0.25, relwidth= 1.0)
upload.place(bordermode=INSIDE, relheight= 1.0, relwidth= 0.25)
run.place(bordermode=INSIDE, relheight= 1.0, relwidth= 1.75)
root.mainloop()
Например, когда я запускаю этот код, текст для кнопки «Выполнить» находится в правильном месте, но фактическая кнопка занимает всего окно.Какая бы кнопка не использовалась последней, затмевает все остальное в окне.
Я пытался изменить размер кнопки с помощью config()
и просто изменил размер в пределах своих собственных параметров, таких как run = Button(root, text="Run", height=100, width=100)
.
Iзнаю, что это как-то связано с тем, что я использую place()
, потому что, когда я использую pack()
или grid()
, размер кнопки по умолчанию (размер текста).
Для людейкто скажет: «Используйте grid
вместо place()
» - я не могу понять, как лучше grid()
.Это кажется гораздо менее интуитивно понятным и гораздо менее эффективным, особенно для размеров окна приложений, зависящих от разрешения экрана (как часть моего кода).На самом деле весь формат grid()
намного слабее, чем просто использование мер с плавающей точкой относительно окна (т.е. как это делается с использованием place).Я пришел из системы ОС, где это стандартная практика, и люди, которые используют пиксели и т. Д., Высмеиваются.Сценарий, похоже, перевернут на StackOverflow с помощью Tkinter.Не стесняйтесь передумать.
Мой вопрос: как мне сохранить размер кнопок по умолчанию (инкапсулирующий текст), сохраняя при этом возможность их эффективного размещения?