[英]Tkinter: How to get written text from user using text widget and print them in multiple lines?
我想在三個不同的行中打印這四行段落,但它總是在一行中。
代碼是這樣的:
def any():
v = box.get('1.0',END+'-1c')
print(v)
box = Text(window,width=50,height=20,wrap = WORD)
box.grid(row=0,column=0,padx=15,pady=15)
btn = Button(window,text = 'Click',command = any).grid(row=0,column=1)
window.mainloop()
在我寫的文本框中:
Hello world myself Unknown Program Currently
programming with tkinter and wanna print this three
line code in multiple lines rather than a single
line.
我得到了什么:
Hello world myself Unknown Program Currently pragraming with tkinter rand wanna print this three line code in multiple lines rather than a single line.
它打印在單行中,我想像在文本框中一樣打印 4 行。我該怎么做?
即使您的問題看起來像是您輸入了四行文本(即:帶有換行符的文本),但 output 的唯一解釋是您輸入了一行長文本,該文本由文本自動換行小部件。
如果您希望打印的 output 由於自動換行而與您看到的內容相匹配,您可以遍歷顯示的每一行,將它們一一打印出來。 Tkinter 可以通過使用“display lineend”修改索引來獲取顯示行的結尾。 例如, "1.0 display lineend"
將表示 position 緊跟在顯示行的最后一個字符之后。
您可以使用它來迭代每個顯示的行。 以下是您可以如何執行此操作的示例:
index = "1.0"
while box.compare(index, "<", "end"):
text = box.get(index, f"{index} display lineend")
print(text)
index = box.index(f"{index} + 1 display line")
這從索引“1.0”開始,直到顯示的第一行末尾的所有內容,然后打印出來。 然后它將起始索引調整到下一個顯示行的開頭,並繼續直到起始索引與小部件中的最終索引相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.