[英]Python3 Tkinter Text Widget INSERT on same line
我在python3
有一個tkinter
應用程序,帶有將文本插入其中的Text小部件。 我想將插入的文本追加到上一次插入的同一行上,如下所示:
from tkinter import *
class App :
def __init__(self):
sys.stdout.write = self.print_redirect
self.root = Tk()
self.root.geometry("900x600")
self.mainframe = Text(self.root, bg='black', fg='white')
self.mainframe.grid(column=0, row=0, sticky=(N,W,E,S))
# Set the frame background, font color, and size of the text window
self.mainframe.grid(column=0, row=0, sticky=(N,W,E,S))
print( 'Hello: ' )
print( 'World!' )
def print_redirect(self, inputStr):
# add the text to the window widget
self.mainframe.insert(END, inputStr, None)
# automtically scroll to the end of the mainframe window
self.mainframe.see(END)
a = App()
a.root.mainloop()
我希望大型機文本小部件中的結果插入看起來像“ Hello: World!
但是,我很難將插入的文本保持在同一行上。 每次插入時,都會生成一個新行。
如何將mainframe.insert輸入字符串保持在同一行而沒有換行符?
問題不是insert()
而是print()
總是在末尾添加'\\n'
-這很自然。
您可以使用end=""
打印不帶'\\n'
文本
print( 'Hello: ', end='' )
或直接
sys.stdout.write( 'Hello: ' )
或在insert()
使用
inputStr.strip('\n')
但是它將刪除所有的'\\n'
即使您需要'\\n'
即。
print( 'Hello:\n\n\n' )
您將永遠不知道是否必須刪除最后一個'\\n'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.