Tkinter как Entry убольшит в толщину высоту ширину и тд
Tkinter как Entry убольшит в толщину высоту ширину и тд ошибка. У меня в том что я пишу ширину width а потом высоту *длину команда height в чем ошибка?
Ответы (3 шт):
В Tkinter
у Entry
нет параметра height
. Если Вы хотите большое поле, можете посмотреть в сторону виджета Text
.
По аналогии с этим ответом: Как установить фиксированный размер текстового поля в Tkinter?
Создать фрейм с нужным размером, запретить ему сужаться под размер содержимого. Потом в этом фрейме разместить текстовое поле с расширением под размер фрейма.
import tkinter as tk
root = tk.Tk()
root.geometry("200x200")
frame = tk.Frame(width=100, height=100)
frame.pack()
frame.pack_propagate(False)
entry = tk.Entry(frame)
entry.pack(expand=True, fill=tk.BOTH)
root.mainloop()
Мне кажется, что автор вопроса не совсем понимает в каких случаях какие виджеты используются. Виджет entry позволяет печатать только в одну строку. Если нужно много строк, используется виджет Text. Если нужна большая красивая надпись, то виджет Label. Никакие фреймы в форму совать не надо. Менеджеры размещения виджетов сделают такую работу сами. Вот пример формы и виджета в ней с использованием менеджера grid():
import tkinter as tk
def main():
root = tk.Tk()
root.title("Моя форма")
root.geometry("400x200") # Устанавливаем размеры окна
# Создаем поле ввода
entry = tk.Entry(root)
entry.grid(row=0, column=0, sticky="nsew") # Растягиваем поле по высоте и длине
# Настройка растягивания
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.mainloop()
if __name__ == "__main__":
main()
В это примере создаётся форма, а в ней виджет entry, который автоматически растягивается на всю длину и ширину формы. Конечно же, менеджер позволит настроить любые варианты растягивания виджетов, этот самый примитивный, в качестве примера.