我需要一些帮助来完成这个项目。我找不到将我输入到小组件中的文本包起来的命令(没有换行符的填充框)。我想做的是,当我按下 "wrap "按钮时,摆脱换行符。 我想做的是在框中填入文字,然后去掉换行符,将文字包在框中。
from tkinter import *
from tkinter import scrolledtext
import textwrap
window = Tk()
window.title("Welcome to Text Wrap app")
window.geometry('500x500')
txt = scrolledtext.ScrolledText(window,width=50,height=20)
txt.grid(column=0,row=0)
btn1 = Button(window,text='Clear', command=lambda: txt.delete(1.0,END))
btn2 = Button(window,text='Wrap', command=lambda: textwrap)
btn1.grid(column=4, row=15)
btn2.grid(column=8, row=15)
window.mainloop()
我卡在了btn2上。
你可以试试这个。
def doit():
data = txt.get('1.0', END).replace('\n', ' ')
txt.delete('1.0', END)
txt.insert(INSERT, data)
btn2 = Button(window,text='Wrap', command=lambda: doit())
因为你使用的是 文本包 你不需要担心换行符(\n),它会为你处理。
由于你需要执行多条语句,你不需要一个 lambda
btn2上。另外,需要排除按钮上的函数括号,否则不点击按钮就会立即执行。
另外,将几何体增加到 window.geometry('600x500')
因为我的窗口切断了包裹按钮。
试试。
# function - setting width to 50 since you set the textbox to 50
def wrap_text():
orig_data = txt.get(1.0, END)
txt.delete(1.0, END)
txt.insert(INSERT, textwrap.fill(orig_data, width=50))
# Button - no function parenthesis
btn2 = Button(window, text='Wrap', command=wrap_text)
使用测试文本的结果。
在点击Wrap按钮之前。
点击Wrap按钮后: