當前位置:首頁 ? tkinter ? 正文

tkinter,讓窗口右上角關閉按鈕‘X’失效,禁用標題欄上的關閉按鈕

 有不少情況,我們不希望用戶點擊窗體右上角的關閉按鈕直接關閉窗體,而是希望用戶點擊窗體上設計的按鈕或菜單退出。禁用標題欄上的關閉按鈕,其實很簡單,我們通過窗體的通信協議方法: protocol(消息,綁定函數) 來實現。

 窗體關閉的消息是: WM_DELETE_WINDOW

 綁定的函數名及內容由我們來定義。

   看看下面的代碼:

from tkinter import *

def callback():
    pass # 這個函數不做任何事,實際上讓關閉按鈕失效

root=Tk()
root.protocol('WM_DELETE_WINDOW',callback) # 窗體的通信協議方法

but1=Button(root,text=" 退 出 ",command=root.destroy) # 只有通過這個退出按鈕才可以退出程序
but1.pack(pady=10)

root.mainloop()

運行結果 

未命名.GIF

運行后,標題欄上的關閉按鈕,雖然沒有變灰,也可以點擊,但點擊沒有任何反應,這說明關閉X按鈕已經通過代碼失效了。

我們可以通過窗體上的“退出”按鈕直接退出窗體。


其實,我們也可以設計一下,讓用戶點擊關閉按鈕后,彈出一個對話框,讓用戶決定是否退出。

以下是代碼:

from tkinter import *
from tkinter import messagebox

def callback():
    a=messagebox.askquestion("詢問:","真要退出嗎?") # 詢問:是,否,yes,no
    if a=='yes':
        root.destroy() # 返回值為yes就退出

root=Tk()
root.protocol('WM_DELETE_WINDOW',callback)

root.mainloop()

運行后,點關閉按鈕,可以根據用戶的選擇來決定是否退出程序。


此文章來自:wb98.com  網站還有相關的系列課程文章,感興趣的可以前往。


來源:濟亨網

本文鏈接:http://www.chinaengraver.com/post/356.html

    << 上一篇 下一篇 >>

    湘公網安備 43011102000514號 - 湘ICP備08100508號

    2019年秋霞鲁丝片瓜皮_导航亚洲AV日韩AV永久无码_有没有哪些可以看片的免费的_国产色妞妞在线视频免费播放