将两行字符串打印为单行字符串Tkinter

时间:2018-07-05 21:44:11

标签: python python-3.x 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()

2 个答案:

答案 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;
    }
}

结果:

enter image description here

控制台:

enter image description here

答案 1 :(得分:1)

您只需要用空格替换换行符(\n)。

def printText():
    s = t.get('1.0', "end-1c")
    print(s.replace('\n', ' '))