PySimpleGUI 讓 Python 的 GUI 界面開發變得如此簡單(第02篇) —— 掌握界面控件使用,你的界面你做主

import PySimpleGUI as sg

PySimpleGUI封裝了tkinter,Qt,WxPython和Remi,以便您獲得所有相同的小部件,但可以通過端口之間通用的更友好方式與它們進行交互.

一、界面控件

1. 文本框(Text)

sg.Text('文本框'),sg.Text(size=(12,1),key='output')

(1)“文本框”爲框體顯示的文字。
(2)size 爲大小。默認值,其中大小約等於size=(50,1),也可以單獨設置。size=(12,1)代碼,12列,1行,即一行顯示12個字符位的大小設置框。
(3)key 值爲標識文本框,若定位或提取文本框中的內容時用到。

2. 輸入框(Input)

sg.Input(key='input')

(1)key 值爲標識輸入框,若定位或更新輸入框中的內容時用到。

3. 按鈕(Button)

sg.Button('Show')

“Show”爲按鈕的名字 ,也可爲按鈕設置自己的 key 值

4. 下拉框(Comobo)

[ sg.Text("City", size = (20, 1)), sg.Combo(("北京", "上海", "深圳"), size=(10, 1), default_value="上海", key = "-CITY-")]

(1)第一項參數是一個 tuple,是下拉框裏所有的選項,這裏列出了 3 個城市。
(2)爲了顯示所有下拉框內容,我們將 size 指定爲 (10, 1), 10 個英文字符寬,一個字符高。
(3)再沒有選中的時候,Combo 默認顯示 default_value 中的值。

5. 彈窗(Popup)

sg.Popup('彈窗1','This is the first one')
sg.Popup('彈窗2','This is the second one')
sg.Popup('彈窗3','This is the third one')

(1)sg.Popup()括號裏面:第一個’‘裏面是標題,這個標題也會在窗口的第一行顯示;第二個’'裏面是內容。
(2)一個sg.Popup()代表一個窗口

6. 選擇文件路徑(FileBrowse)

sg.FileBrowse()

這個一般時組合使用,和輸入框一起組合使用。

 [sg.Input(),sg.FileBrowse()]

7. 選擇文件(FolderBrowse)

sg.FolderBrowse()

這個一般時組合使用,和輸入框一起組合使用。

sg.InputText(size=(15,1)),sg.FolderBrowse()

8. 多行列表文本(ListBox)

list = [123]
layout = [
    [sg.Listbox(values=list,size=(20,12),key='LIST',enable_events=True)]
]

在這裏插入圖片描述

9. 多選框(Checkbox)

sg.Checkbox('多選框',default=True)

10. 單選框(Radio)

# RADIO1 必有
sg.Radio('單選框','RADIO1',default=True)

11. 大文本框(Multiline)

“hello” 爲文本框中的內容

sg.Multiline(default_text='hello')

12. 下拉列表框(InputCombo

sg.InputCombo(['box_1','box_2'],size=(20,3))

13. 拖動按鈕(Slider)

sg.Slider(range=(1,100),orientation='h',size=(34,20),default_value=85)
 # (range=(1, 100):數值範圍
 # orientation=拖動方向 ‘h’ :橫向 ‘v’:豎向
 # size=(34, 20):大小
 # default_value=85默認值

14. 下拉選項(InputOptionMenu)

sg.InputOptionMenu('Menu_1','Menu_2',size=(20,2))

15. 菜單(Menu)

sg.Menu(menu_def, tearoff=True)

16. 控件(Column)

sg.Column(column1, background_color='')

17. 進度條(ProgressBar)

sg.ProgressBar(10,orientation='h',size=())
# 10:進度條長度
# orientation=‘h’/v 方向

18. 調試窗口

sg.Print('內容', text_color='', background_color='', font='')

不可以在組件中使用,只能在組件外使用

19. 自帶按鈕

sg.OK(), sg.Cancel(),sg.Submit()#這三個按鈕是自帶的,默認的,不需要單獨定義其作用
當然,也可以單獨設置
sg.Button('Ok'), sg.Button('Cancel')
自帶按鈕
sg.FolderBrowse()=sg.FileBrowse(), sg.Submit(), sg.Cancel()

二、界面的使用

1. 界面的默認佈局

整體的佈局是從上而下,同一列表中爲從左往右,這個自己體驗以下就可以知道啦

2. 設置背景顏色

# 設置背景顏色
sg.theme('DarkBrown5')
# 查看所有主題
print(sg.theme_previewer())
# 獲取主題名稱列表
print(sg.theme_list())

3. 創建視圖窗口(window)

(1)創建視圖窗口,用二維列表 list 表示,用來存放組件
(2)每一個列表爲每一行組件。

layout = [
    [sg.Text('Filename')],
    [sg.Input(),sg.FileBrowse()],
    [sg.OK(),sg.Cancel()]
]
window = sg.Window('窗口名字',layout)

4. 顯示窗口 / 關閉窗口

window.read()
window.close

5. 定位框體 / 更新框體

根據定義組件的時候設置的 key 值來進行定位:

#定爲窗體
weather_wind = window['TYPE']
#窗體跟新
weather_wind.update(s)

6. 獲得相應的組件以及窗體的值

event 是觸發 read 函數的組件 key,如果用戶點擊的是 window 上的 X,那這個 event 是 None,並且這是 event 爲 None 的唯一情況,所以在循環中必須妥善處理 event 爲 None 的情況,否則會出現異常情況。

event, values = window.read()
print(event, values)

在這裏插入圖片描述
可以看到輸出的是字典類型的,此輸出是上一篇博文天氣小助手的輸出喲。

三、整體組件測試圖展

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章