【问题标题】:Tkinter: disable text widget content auto resize (newline), when user resize windowTkinter:当用户调整窗口大小时禁用文本小部件内容自动调整大小(换行符)
【发布时间】:2020-01-29 01:53:58
【问题描述】:

建议:我在 Windows 8.1 上工作,最后一个版本是 Python 和 Tkinter;我写了from tkinter import * 在这里发布更少的代码,我知道这是一个不好的做法,例如使用import tkinter as tk 代替。

我正在编写我的第一个文本编辑器,但我在调整主窗口大小时遇到​​了问题。当我运行程序时,它会在屏幕上显示一个尺寸为 750x500 像素的窗口。到目前为止,一切正常,我可以毫无问题地编写文本(请注意,menu_bar 和其他功能正在开发中,但我们不关心它们)。当用户尝试使用光标调整窗口大小时,文本小部件出现问题。文本的内容实际上适应了窗口的大小(每个字符串的长度根据窗口的宽度减少或增加)。但我不希望这种情况发生。我希望 Text 小部件根据窗口大小自动更改其宽度,但不得调整内容。我希望您理解我的问题,如果没有,我会尝试更好地解释。 如果有设置此选项的参数,我已经搜索了在线参考,但我没有找到任何东西。

如何解决Text小部件和调整窗口大小的问题?

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()

【问题讨论】:

  • 请将此代码缩减为minimal reproducible example。例如,除非部分问题涉及剪切和粘贴文本,否则我们不需要cutcopypasteundoredo 函数。我们也不需要菜单栏。
  • 好的,我正在这样做

标签: python tkinter text resize


【解决方案1】:

你不能做你想做的事。如果您打开了换行,文本将始终在窗口边缘换行。当您更改窗口的宽度时,文本将重新换行到新的宽度。没有配置选项可以告诉小部件在任何其他地方换行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2017-11-18
    • 1970-01-01
    • 2011-02-28
    • 2018-03-01
    • 2013-07-10
    • 2013-11-30
    相关资源
    最近更新 更多