2016-09-24 46 views
0

我想在GUI本身返回用户的搜索结果。 这是下面的代码,我使用如何重新初始化Tkinter中的文本小部件?

def printResult(searchResult): 
global resultsFrame 
text = Text(resultsFrame) 

for i in searchResult: 
    text.insert(END,i+'\n') 
text.pack(side=TOP) 

其中信息搜索结果是具有所有的语句在屏幕上打印的清单,这是我在代码中声明resultsFrame(root.mainloop前() ) 我正在使用全局,因此它会更改现有框架,但它会在其下面添加另一个框架。 如何在已有的文本小部件中进行更改?

resultsFrame = Frame(root) 
resultsFrame.pack(side=TOP) 

为了参考这里是GUI的图像:

Creation of new Text widget

编辑: 问题解决

我声明的功能外框架

resultsFrame = Frame(root) 
resultsFrame.pack(side=TOP) 
text = Text(resultsFrame) 

def printResult(searchResult): 
    global resultsFrame 
    global text 
    text.delete("1.0",END) 
    for i in searchResult: 
     text.insert(END,str(i)+'\n') 
    text.pack(side=TOP) 
+0

您是否阅读过文档?插入和删除文本的方法都是有据可查的。 –

+0

我曾尝试删除,但问题是函数每次按下提交按钮时会被调用,并且它最终会在框架中添加一个文本控件。/ 我确实使用了.delete(“1.0”,END) –

+1

删除每次创建新文本小部件的代码。只需在程序启动时创建一次。 –

回答

2

试试这个:

global resultsFrame 
text = Text(resultsFrame) 

def printResult(searchResult): 
    for i in searchResult: 
     text.insert(END,i+'\n') 
... 
text.pack(side=TOP) 

这应该解决您的问题。