import PySimpleGUI as sg
PySimpleGUI封裝了tkinter,Qt,WxPython和Remi,以便您獲得所有相同的小部件,但可以通過端口之間通用的更友好方式與它們進行交互.
PySimpleGUI
- 一、界面控件
- 1. 文本框(Text)
- 2. 輸入框(Input)
- 3. 按鈕(Button)
- 4. 下拉框(Comobo)
- 5. 彈窗(Popup)
- 6. 選擇文件路徑(FileBrowse)
- 7. 選擇文件(FolderBrowse)
- 8. 多行列表文本(ListBox)
- 9. 多選框(Checkbox)
- 10. 單選框(Radio)
- 11. 大文本框(Multiline)
- 12. 下拉列表框(InputCombo
- 13. 拖動按鈕(Slider)
- 14. 下拉選項(InputOptionMenu)
- 15. 菜單(Menu)
- 16. 控件(Column)
- 17. 進度條(ProgressBar)
- 18. 調試窗口
- 19. 自帶按鈕
- 二、界面的使用
- 三、整體組件測試圖展
一、界面控件
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 = [1,2,3]
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)
可以看到輸出的是字典類型的,此輸出是上一篇博文天氣小助手的輸出喲。