我在void printArrayPointer(const int arr[], int n){
for (const int *i = arr; i < arr + n; i++) {
cout << *i << ' ';
}
}
中有一个tkinter
应用,其中包含我插入文本的文本小部件。我想在与前一个插入相同的行上添加插入的文本,如下所示:
python3
我希望大型机文本小部件中的结果插件看起来像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()
但是我很难将插入的文本保持在同一行。每次插入时,都会生成一个新行。
如何将mainframe.insert输入字符串保留在同一行而不换行?
答案 0 :(得分:5)
问题不是insert()
,而是print()
总是在最后添加'\n'
- 但这很自然。
您可以使用end=""
打印不带'\n'
print( 'Hello: ', end='' )
或直接
sys.stdout.write( 'Hello: ' )
或insert()
使用
inputStr.strip('\n')
但它会删除所有'\n'
- 即使您需要'\n'
即
print( 'Hello:\n\n\n' )
您永远不会知道是否必须删除上一个'\n'
。