[英]Print two-row string as one-row string Tkinter
我編寫了一個代碼,該代碼從文本小部件中獲取值(文本)並進行打印。 我注意到,當我在兩行(或更多行)中輸入文本時,它將在兩行(或更多行)中打印出來。
我應該寫什么代碼,以便無論文本小部件中有多少行,它總是將文本打印在一行中? 文字應由行制動器上的空白隔開。
碼:
from tkinter import*
myApp=Tk()
t=Text(myApp, width=20, height=20)
t.grid(row=0, column=0, padx=10, pady=10)
def printText():
s = str(t.get('1.0', "end-1c"))
print(s)
but= Button(myApp, text="print", command=printText)
but.grid(row=0,column=1)
myApp.mainloop()
我會在換行符處分割字符串,然后將單詞合並為最終字符串以進行打印。
首先,我們創建每行的列表。 然后,我們將每一行合並為一個字符串。 然后,我們將最終結果打印到控制台。
旁注:我已更新您的代碼,使其與PEP8和tkinter的首選導入方法更加一致。
import tkinter as tk
root = tk.Tk()
t = tk.Text(root, width=20, height=5)
t.grid(row=0, column=0, padx=10, pady=10)
def print_text():
row_list = t.get('1.0', "end-1c").split("\n")
final_string = ""
for item in row_list:
final_string = "{} {}".format(final_string, item)
print(final_string.strip())
but = tk.Button(root, text="print", command=print_text)
but.grid(row=0,column=1)
root.mainloop()
結果:
安慰:
您只需要用空格替換換行符( \\n
)。
def printText():
s = t.get('1.0', "end-1c")
print(s.replace('\n', ' '))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.