pysimplegui-第二課:窗口讀取返回值--事件

課程簡(jiǎn)介

1、窗口關(guān)閉事件

2、按鈕點(diǎn)擊事件

3、其他元素事件

一、窗口關(guān)閉事件

1)窗口關(guān)閉按鈕是一個(gè)特殊的按鈕,在界面的右上角“×”

2)編寫方法

if event== None:#窗口關(guān)閉事件

? ? ? ? break

if event= sg.WIN_CLOSED:#窗口關(guān)閉事件

? ? ? ? break

注意:

定義窗口關(guān)閉事件是至關(guān)重要的,忘記定義窗口關(guān)閉事件,但后又點(diǎn)擊窗口右上角的“×”按鈕,它會(huì)默默的消耗你100%CPU。

二、按鈕點(diǎn)擊事件

if event==“確認(rèn)”:# 判斷事件是否發(fā)生

? ? ? ? print(“確認(rèn)”),#事件發(fā)生時(shí)要處理執(zhí)行的任務(wù)

? ? ? ? sg.Popup(“執(zhí)行確認(rèn)任務(wù)”)

if event==“取消”:#判斷事件是否發(fā)生

? ? ? ??print(“取消”),#事件發(fā)生時(shí)要處理執(zhí)行的任務(wù)

? ? ? ? sg.Popup(“執(zhí)行取消任務(wù)”)

if event==“Exit”:

? ??????sg.Popup(“您點(diǎn)擊了Exit按鈕”) # 執(zhí)行彈窗任務(wù)

? ? ? ? break

if event? in(“Exit”,None):

????????sg.Popup(“您點(diǎn)擊了Exit或者窗口關(guān)閉按鈕”)

? ? ? ? break

if event.startswith(“Exit”):? # 執(zhí)行括號(hào)里面開頭的任務(wù)

????????sg.Popup(“您點(diǎn)擊了Exit***按鈕”)

? ? ? ? break

if event.endswith(“Exit”):?

????????sg.Popup(“您點(diǎn)擊了***Exit按鈕”)

? ? ? ? break

三、點(diǎn)擊按鈕事件(代碼)

import PySimpleGUIas sg

# 定義布局

layout= [

? ? [sg.Text("請(qǐng)輸入您的基本信息")],

????[sg.T("姓名"), sg.InputText("程序員")],

????[sg.T("性別"), sg.In("男")],

????[sg.T("國(guó)籍"), sg.In("中國(guó)")],

????[sg.B("確定",key="ok"), sg.B("取消",key="Exit")],

????[sg.B("確定_",key="ok_1"), sg.B("取消",key="1_Exit")],

]

#? 創(chuàng)建窗口

window= sg.Window("Python GUI", layout)

# 事件循環(huán)

while True:

? ? event, values= window.read()? # 窗口的讀取,有兩個(gè)返回值(1、事件,2、值)

? ? if event in ("Exit",None):

? ? ? ? sg.Popup("您執(zhí)行了取消任務(wù)")

? ? ? ? break

? ? if event== "ok":

? ? ? ? sg.Popup("您執(zhí)行了確定任務(wù)")

? ? if event.startswith("ok"):

? ? ? ? sg.Popup("您執(zhí)行了確定彈窗任務(wù)")

# 關(guān)閉窗口

window.close()

效果如下:

四、其他元素事件

1)像文本元素、輸入框、下拉菜單等事件屬性默認(rèn)是關(guān)閉的,只有手動(dòng)設(shè)置他們的事件屬性enable_events = True時(shí),它們將具有事件屬性。

例如:文本元素

layout= [[sg.Text("OK"),enable_evevnt = True]]

if event == "OK":

? ? sg.Popup("文本屬性為真")

代碼如下:

import PySimpleGUIas sg

# 定義布局

layout= [

? ? [sg.Text("請(qǐng)輸入您的基本信息",enable_events= True)],

????[sg.T("姓名"), sg.InputText("程序員")],

????[sg.T("性別"), sg.In("男")],

????[sg.T("國(guó)籍"), sg.In("中國(guó)")],

????[sg.B("確定",key="ok"), sg.B("取消",key="Exit")],

????[sg.B("確定_",key="ok_1"), sg.B("取消",key="1_Exit")],

]

#? 創(chuàng)建窗口

window= sg.Window("Python GUI", layout)

# 事件循環(huán)

while True:

? ? event, values= window.read()? # 窗口的讀取,有兩個(gè)返回值(1、事件,2、值)

? ? if eventin ("Exit",None):

? ? ? ? sg.Popup("您執(zhí)行了取消任務(wù)")

? ? ? ? break

? ? if event== "ok":

? ? ? ? sg.Popup("您執(zhí)行了確定任務(wù)")

? ? if event.startswith("ok"):

? ? ? ? sg.Popup("您執(zhí)行了確定彈窗任務(wù)")

? ? if event== "請(qǐng)輸入您的基本信息":

? ? ? ? sg.Popup("這個(gè)是文本,鼠標(biāo)點(diǎn)擊無(wú)用")

# 關(guān)閉窗口

window.close()

效果如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容