日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值

發布時間:2023/12/15 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獲取窗口對象的返回值是一個很常見的模型,比如程序彈出一個窗口,讀取用戶的輸入值,這個值可以很容易的保存在彈出的窗口中,但問題在于如何將這個值傳遞給彈出窗口的parent。這是一個看似很simple的問題,但真正操作起來才發現是自己too

young~~~

******************************************************************************************************

先簡單的描述需要解決一個什么問題,下面只是一個框架:

它運行的結果如下:

點擊Enter,會彈出窗口如下:

OK,問題就是在這里輸入后,將這個輸入的值傳遞給調用它的主程序。

*******************************************************************************************************

為了解決這個問題,首先需要明白一個概念:所有獨立運行的窗口(Toplevel

widget),都是一個獨立的線程。

為了使這個概念更加的明顯,將整個彈出窗口封裝成一個類型,然后在主窗口中點擊Enter時,創建這個窗口,代碼如下:

這里將創建Toplevel窗口的代碼封裝在了一個類型PopUp中,為了說明"所有獨立運行的窗口(Toplevel

widget),都是一個獨立的線程"這句話,在創建PopUp后,調用tkMessageBox.showinfo()來彈出一個指示性的窗口,下面是點擊主窗口Enter鍵之后的結果:

由結果可以看出,程序不會阻塞在創建TopLevel那里,等待你完成輸入銷毀,而是直接創建一個新的線程來運行。這也是Toplevel

widget的特殊之處,一般的widget運行都需要調用.mainloop()函數。

******************************************************************************************************

所有獨立運行的窗口(Toplevel

widget),都是一個獨立的線程。這是GUI設計一個慣有的問題,它使得用戶的所有操作只能異步的進行。所以針對本文開頭所提出的問題,實現這個功能的代碼只能在PopUp類型的Button

Widget的callback函數中,弄清楚這一點就勝利了一大半。

上面已經完成了全部的框架,只剩下第30行注釋的部分,這部分代碼的功能將PopUp讀取用戶的值傳遞給Gui

*****************************************************************************************************

下面是完整的解決辦法,從Gui中傳遞一個可變的對象(這里是關鍵,想想為嘛不能傳遞string進去),然后在PopUp中記錄傳入的值,這樣這個值就保存在可變的對象中了,這里類似與C++的傳引用方法。

下面是結果:

點擊pop_up,彈出PopUp,輸入:

完成輸入后,點擊show顯示結果:

反正這一塊最重要的是需要明白為啥使用list,而不是使用string,下面這篇文章就說明了區別:

http://blog.sina.com.cn/s/blog_ac9fdc0b0101n44r.html

******************************************************************************************************

上面是利用Tkinter內置的Toplevel

Widget實現,實際上也可以創建自己的類型,唯一的區別在于自己創建的類型需要顯式的調用mainloop()函數,不過說的容易,實現起來難很多。

總結

以上是生活随笔為你收集整理的python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。