如何在PythonGUI中消除换行并使用文本/文本换行填充框

如何在PythonGUI中消除换行并使用文本/文本换行填充框,python,tkinter,text,line-breaks,fill,Python,Tkinter,Text,Line Breaks,Fill,这个项目我需要一些帮助。我找不到将输入到小部件中的文本(填充不带换行符的框)换行的命令。我想做的是在按下“换行”按钮时消除换行。我想做的是用文本填充框,去掉换行符,并将文本包装在框内 from tkinter import * from tkinter import scrolledtext import textwrap window = Tk() window.title("Welcome to Text Wrap app") window.geometry('500x500')

这个项目我需要一些帮助。我找不到将输入到小部件中的文本(填充不带换行符的框)换行的命令。我想做的是在按下“换行”按钮时消除换行。我想做的是用文本填充框,去掉换行符,并将文本包装在框内

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())
您可以尝试以下方法:

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),它将为您处理

由于需要执行多条语句,因此在btn2上不需要
lambda
。此外,您需要排除按钮上的函数括号,否则它将在不单击按钮的情况下立即执行

另外,将几何图形增加到
window.geometry('600x500')
,因为我的窗口切断了包裹按钮

尝试:

#函数-将文本框设置为50后,将宽度设置为50
def wrap_text():
orig_data=txt.get(1.0,结束)
txt.delete(1.0,结束)
txt.insert(insert,textwrap.fill(原始数据,宽度=50))
#按钮-无函数括号
btn2=按钮(窗口,text='Wrap',命令=Wrap\u text)
结果使用测试文本

单击“包裹”按钮之前:

点击包裹按钮后:

因为您正在使用,所以不需要担心换行符(\n),它将为您处理

由于需要执行多条语句,因此在btn2上不需要
lambda
。此外,您需要排除按钮上的函数括号,否则它将在不单击按钮的情况下立即执行

另外,将几何图形增加到
window.geometry('600x500')
,因为我的窗口切断了包裹按钮

尝试:

#函数-将文本框设置为50后,将宽度设置为50
def wrap_text():
orig_data=txt.get(1.0,结束)
txt.delete(1.0,结束)
txt.insert(insert,textwrap.fill(原始数据,宽度=50))
#按钮-无函数括号
btn2=按钮(窗口,text='Wrap',命令=Wrap\u text)
结果使用测试文本

单击“包裹”按钮之前:

点击包裹按钮后:


1.0
不是一个合适的索引。文本小部件索引是字符串,而不是浮点数。它是有效的,但它强化了一个坏习惯。我在响应中对其进行了更改,但是他们似乎在文档中的示例中使用了浮动:effbot上的示例是错误的。索引被记录为一个字符串,格式为line.character。考虑索引<代码> 1.10 /代码>。作为表示第一行的第10个字符的字符串。作为
str(1.10)
之后的第一个字符的浮点,“1.1”
1.0
不是正确的索引。文本小部件索引是字符串,而不是浮点数。它是有效的,但它强化了一个坏习惯。我在响应中对其进行了更改,但是他们似乎在文档中的示例中使用了浮动:effbot上的示例是错误的。索引被记录为一个字符串,格式为line.character。考虑索引<代码> 1.10 /代码>。作为表示第一行的第10个字符的字符串。作为自
str(1.10)
之后的第一个字符的浮点是
“1.1”