Рубрики
Без рубрики

Текстовый виджет Tkinter с полосой прокрутки Tkinter

Всем привет. В этой части нашего раздела учебника по Tkinter мы рассмотрим текстовый виджет Tkinter.

Автор оригинала: Pankaj Kumar.

Всем привет. В этой части нашего раздела учебника по Tkinter мы рассмотрим текстовый виджет Tkinter.

Хотя в предыдущих уроках я использовал объектно-ориентированный подход, поскольку сейчас мы рассмотрим отдельные примеры виджетов, было бы проще, если бы я напрямую использовал модуль.

Итак, я буду напрямую использовать Tkinter здесь, без явного Приложения класса.

А теперь давайте начнем!

Текстовый виджет Tkinter

Это виджет, который позволяет нам легко просматривать текстовые объекты в нашем приложении. Например, если вы хотите отобразить несколько строк в графическом интерфейсе, мы можем легко использовать текстовый виджет для достижения нашей цели.

Давайте посмотрим, как это сделать.

Чтобы создать текстовый виджет, просто используйте метод tk.Text(master, width, height) , где master является основным объектом приложения GUI (используя tk.TK() ).

Затем мы можем добавить текст с помощью метода text_widget.insert () .

import tkinter as tk

# Create our master object to the Application
master = tk.Tk()

# Create the text widget for two lines of text
text_widget = tk.Text(master, height=2, width=40)

# Pack it into our tkinter application
text_widget.pack()

# Insert text into the text widget
# tk.END specifies insertion after the last character in our buffer
text_widget.insert(tk.END, "First Line - Hello from AskPython\nSecond Line - Hi")

# Start the mainloop
tk.mainloop()

Выход

Текстовый виджет Tkinter 1

Действительно, у нас, кажется, есть две строки текста в нашем текстовом виджете!

Добавление полосы прокрутки в наш текстовый виджет

Хотя приведенный выше вывод работает для небольших текстов, что, если наш размер текста сам по себе больше ширины?

Мы можем использовать полосу прокрутки Tkinter и добавить ее в наш текстовый виджет. Теперь, после добавления полосы прокрутки, мы сможем правильно отображать большие тексты.

Чтобы создать объект полосы прокрутки, используйте tk.Полоса прокрутки() и добавьте ее в наше приложение! Теперь, после того, как вы упакуете его в приложение, мы можем отображать более длинные тексты с помощью виджета прокрутки текста!

import tkinter as tk

# Create our master object to the Application
master = tk.Tk()

# Create the text widget
text_widget = tk.Text(master, height=5, width=40)

# Create a scrollbar
scroll_bar = tk.Scrollbar(master)

# Pack the scroll bar
# Place it to the right side, using tk.RIGHT
scroll_bar.pack(side=tk.RIGHT)

# Pack it into our tkinter application
# Place the text widget to the left side
text_widget.pack(side=tk.LEFT)

long_text = """This is a multiline string.
We can write this in multiple lines too!
Hello from AskPython. This is the third line.
This is the fourth line. Although the length of the text is longer than
the width, we can use tkinter's scrollbar to solve this problem!
"""

# Insert text into the text widget
text_widget.insert(tk.END, long_text)

# Start the mainloop
tk.mainloop()

Выход

Прокрутка Tkinter 1
Tkinter Scroll 2

Вы можете увидеть полосу прокрутки справа, поддерживаемую текстовым виджетом слева.

Надеюсь, вы сможете развить это, чтобы добавить больше виджетов в свое графическое приложение и сделать его более интересным!

Вывод

В этом уроке мы узнали, как добавить простые текстовые виджеты в наше приложение Tkinter, а также добавить полосы прокрутки для поддержки больших текстов.

Оставайтесь с нами для получения дополнительных виджетов в наших предстоящих уроках Tkinter!