горизонтальная прокрутка текста в окне

если в окне в tkinter текст вышел за конец окна, можно ли прокручивать этот текст вправо и влево?


Ответы (1 шт):

Автор решения: Fox Fox

Насколько мне известно, текст не может прокручиваться в окне. Его там и разместить непосредственно нельзя. Это можно делать при использовании соответствующих виджетов для ввода текста. Для ввода текста в основном используются виджеты 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()

Рекомендую всё ж таки почитать хоть какой-то учебник.

→ Ссылка