горизонтальная прокрутка текста в окне
если в окне в tkinter текст вышел за конец окна, можно ли прокручивать этот текст вправо и влево?
Ответы (1 шт):
Насколько мне известно, текст не может прокручиваться в окне. Его там и разместить непосредственно нельзя. Это можно делать при использовании соответствующих виджетов для ввода текста. Для ввода текста в основном используются виджеты tkinter: Entry и Text. К обоим объектам можно привязать горизонтальную полосу прокрутки. В случае Entry такое привязывание не распространено на практике, но оно существует, вот пример:
import tkinter as tk
root = tk.Tk()
root.title("Горизонтальная полоса прокрутки")
# Создаем виджет Entry
entry = tk.Entry(root)
entry.pack(fill=tk.X)
# Создаем горизонтальную полосу прокрутки
scrollbar = tk.Scrollbar(root, orient="horizontal", command=entry.xview)
scrollbar.pack(fill=tk.X)
# Привязываем полосу прокрутки к виджету Entry
entry.config(xscrollcommand=scrollbar.set)
root.mainloop()
Объект Text более функционален и гибок. Можно привязать прокрутки и по вертикали, и по горизонтали, а ещё можно делать перенос слов, что иногда может быть альтернативой прокруткам. Вот пример:
import tkinter as tk
root = tk.Tk()
root.title("Пример с Text и Scrollbar")
# Создаем виджет Text
text_widget = tk.Text(root, height=5, width=40)
text_widget.grid(row=0, column=0, sticky=tk.NSEW)
# Создаем вертикальную полосу прокрутки
vertical_scrollbar = tk.Scrollbar(root, orient="vertical", command=text_widget.yview)
vertical_scrollbar.grid(row=0, column=1, sticky=tk.NS)
# Создаем горизонтальную полосу прокрутки
horizontal_scrollbar = tk.Scrollbar(root, orient="horizontal", command=text_widget.xview)
horizontal_scrollbar.grid(row=1, column=0, sticky=tk.EW)
# Привязываем полосы прокрутки к виджету Text
text_widget.config(yscrollcommand=vertical_scrollbar.set, xscrollcommand=horizontal_scrollbar.set)
# Настройка весов для растяжения
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
root.mainloop()
Рекомендую всё ж таки почитать хоть какой-то учебник.