Tkinter: отключить автоматическое изменение размера текстового виджета (новая строка), когда окно изменения размера пользователя - PullRequest
0 голосов
/ 29 сентября 2019

Совет : я работаю на Windows 8.1 с Python и Tkinter в последней версии;я написал from tkinter import * чтобы разместить меньше кода здесь, я знаю, что это плохая практика, используйте вместо этого, например, import tkinter as tk.

Я пишу свой первый текстовый редактор, и у меня возникает проблема при изменении размера основных окон. Когда я запускаю программу, она отображает на экране окно размером 750х500 пикселей. Пока все хорошо, я могу писать текст без проблем (обратите внимание, что menu_bar и другие функции находятся в стадии разработки, но мы не заботимся о них). Проблема с текстовым виджетом, когда пользователь пытается изменить размер окна с помощью курсора. Содержание текста практически адаптируется к размеру окна (длина каждой строки уменьшается или увеличивается в зависимости от ширины окна). Но я не хочу, чтобы это случилось. Я хочу, чтобы текстовый виджет автоматически изменял свою ширину в зависимости от размера окна, но содержимое не должно быть адаптировано. Я надеюсь, что вы понимаете мой вопрос, если нет, я постараюсь объяснить лучше. Я искал в онлайн-справке, есть ли параметр для установки этой опции, но я ничего не нашел.

Как решить проблемы, связанные с виджетом «Текст» и изменением размера окна?

from tkinter import *

root = Tk()

root.geometry("750x500")

content_text = Text(root, wrap=WORD, bg="grey25", undo=True, cursor="",
                    insertbackground="red", foreground="white", font="courier 12")
content_text.pack(fill=BOTH, expand=True)

scroll_bar = Scrollbar(content_text)
content_text.configure(yscrollcommand=scroll_bar.set, selectbackground="dodgerblue")
scroll_bar.configure(command=content_text.yview)
scroll_bar.pack(side=RIGHT, fill=Y)

if __name__ == '__main__':
    root.mainloop()

1 Ответ

1 голос
/ 29 сентября 2019

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

...