程序图形化界面刷新以及如何从tkinter窗口中正确读出数据
1.問題提出
在做圖形化編程時經常遇到界面刷新函數,如python tkinter中的mainloop,java線程new和remove并用等等。但是想要使用圖形化界面的數據(輸入的文本數據或其他)時卻出現了無法將其讀出/使用的問題。
2.問題解決
以python tkinter包中的mainloop圖形界面刷新函數為例,如果我們將使用圖形界面數據的操作放在刷新函數之前,那么只能得到原數據,不會得到圖形界面的任何輸入數據。
eg:
最后str得到結果仍然是“”,因為圖形界面是在使用mainloop時才出現的,也就是前面的操作執行結束之后才會出現圖形界面供我們進行操作,所以str讀取到的只能是未出現圖形界面時的文本輸入框的初始數據-空值。
想要使用圖形化界面的數據1.直接在對應的事件處理函數中使用(該函數是在圖形界面之后,通過我們點擊或按鍵觸發,所以從邏輯和實際執行上都是可行的)。
eg:
2.通過全局變量將數據傳出,注意全局變量是在所有函數之外的變量。
易錯:
上述情況中的str并非全局變量,這樣是不能將數據傳出的,所以最后str的輸出仍然為“”
正確使用:
此時得到的str將是最后一次點擊Button觸發函數時Entry輸入框的值
補充說明mainloop:
mainloop是圖形界面的刷新操作,直到我們將界面刪除,它才會結束。所以也只有我們X掉界面才能進行下一步操作
總結
以上是生活随笔為你收集整理的程序图形化界面刷新以及如何从tkinter窗口中正确读出数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有向无环图拓扑排序(python实现)
- 下一篇: java多线程池