Как получить текст для ввода в новую строку в текстовом виджете в tkinter? - PullRequest
0 голосов
/ 09 мая 2020

Я создаю простую программу, которая отображает текст в списке в tkinter. Иногда текст, который я хочу отобразить, больше, чем список, поэтому он уходит за экран. Мне было интересно, есть ли способ заставить текст начинать новую строку ниже вместо того, чтобы уходить с экрана.

Код

from tkinter import *

root = Tk()

text = Text(root, width = 50, height=15, bg="#2C2F33", fg="white",wrap=WORD)
text.grid(row=0, column=0, padx=10)

while True:
    message = input("Enter a message: ")
    text.insert(INSERT, message)

root.mainloop()

Проблема:

The messages are not inputting on a newline

Предполагаемый результат

The intended result

Вся помощь приветствуется!

1 Ответ

0 голосов
/ 09 мая 2020

Виджет «Список» представляет собой меню элементов на выбор. Элемент списка не может быть распределен по более чем одной строке или строке.

вам следует использовать другой виджет под названием Text

from tkinter import *

root = Tk()
message = "This message is too long to display on the listbox. I hope that someone will help me find a solution to this problem."
text = Text(root, width = 50, height=15, bg="#2C2F33", fg="white",wrap=WORD)

text.insert(INSERT, message)

text.grid(row=0, column=0, padx=10)

root.mainloop()

note:
wrap : этот параметр управляет отображением слишком широких линий. Установите wrap = WORD, и строка после последнего подходящего слова будет разорвана. По умолчанию wrap = CHAR, любая строка, которая становится слишком длинной, будет разбита на любой символ.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...