2016-09-24 68 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) 

這應該解決您的問題。