如何自动调整文本小部件的大小以适应文本小部件的高度
- 不会有任何
\n
文本小部件,而是文本将环绕(整个单词)并继续向下。wrap=WORD
这怎么能做到?
我接近问题陈述的想法:我想知道是否可以每次在文本小部件中环绕文本时进行计数,并通过该给定值以某种方式计算文本小部件的高度?- 只是一个想法..我不知道这是否可能。
**为什么这不是重复的**
这不是重复的,链接到您声称它是重复的问题,如果您这么认为的话。他们都实施了一个解决方案,在该解决方案中,它会在文本小部件的每个击键中检查一个 '\n'。我的文本小部件根本没有任何 '\n'。而是将单词环绕!
这不是我正在寻找的解决方案,因为它正在寻找 '\n' 并根据找到的数量相应地更改高度。由于我不会使用任何 '\n' 而是将单词包裹在 ( Text(frame, wrap=WORDS)
) 周围,因此不会出现 '\n' 使该解决方案无用!”
这就是为什么这段代码,从人们声称这是重复的问题中,不会解决这个问题,这不是重复的。
不会解决我的问题,因为它会查找“\n”:
import Tkinter
class TkExample(Tkinter.Frame):
def __init__(self, parent):
Tkinter.Frame.__init__(self, parent)
self.init_ui()
def init_ui(self):
self.pack()
text_box = Tkinter.Text(self)
text_box.pack()
text_box.bind("<Key>", self.update_size)
def update_size(self, event):
widget_width = 0
widget_height = float(event.widget.index(Tkinter.END))
for line in event.widget.get("1.0", Tkinter.END).split("\n"):
if len(line) > widget_width:
widget_width = len(line)+1
event.widget.config(width=widget_width, height=widget_height)
if __name__ == '__main__':
root = Tkinter.Tk()
TkExample(root)
root.mainloop()
编辑示例
这就是我不使用消息小部件的原因,它们不会重新排列文本以填充文本小部件。