我编写了一个代码,该代码从文本小部件中获取值(文本)并进行打印。 我注意到,当我在两行(或更多行)中输入文本时,它将在两行(或更多行)中打印出来。
我应该编写什么代码,以便无论文本小部件中有多少行,它总是将文本打印在一行中?文字应该用行制动器上的空白隔开。
代码:
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()
答案 0 :(得分:3)
我会在换行符处分割字符串,然后将单词组合成最终字符串以进行打印。
首先,我们创建每行的列表。 然后,我们将每一行合并为一个字符串。 然后,我们将最终结果打印到控制台。
旁注:我已更新您的代码,使其与PEP8和tkinter的首选导入方法更加一致。
class CreateArray{
private $array;
private $previous;
private $current;
public function __construct(){
$this->current =& $this->array;
}
public function add_value($value){
$this->current[] = $value;
return $this;
}
public function sub_array_start() {
$this->previous =& $this->current;
$this->current =& $this->array[];
return $this;
}
public function sub_array_end() {
$this->array =& $this->previous;
$this->current =& $this->array;
return $this;
}
public function get() {
return $this->array;
}
}
结果:
控制台:
答案 1 :(得分:1)
您只需要用空格替换换行符(\n
)。
def printText():
s = t.get('1.0', "end-1c")
print(s.replace('\n', ' '))