簡體   English   中英

將兩行字符串打印為單行字符串Tkinter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM