首頁>技術>

1 PySimpleGUI安裝

在命令列/終端輸入:pip install pysimplegui,等待安裝完成後,進入python環境,輸入import PySimpleGUI回車無誤後,確認安裝成功

2.1 兩種介面設計模式

(1) 單次顯示介面(one-shot window)

類似於彈窗,出現一次常用於提示資訊,收集資訊

(2)持續顯示介面(Persistent window)

持續不斷顯示,除非使用者手動關閉常作為軟體的主介面2.2 製作彈窗

官網預設的庫的縮寫為sg,使用時建議保持統一,也是使用sg

彈窗型別:(第一種和第二種是一致的)

sg.popup('注意!')sg.popup_ok('預設彈窗')sg.popup_yes_no('帶Yes和No按鈕的彈窗')sg.popup_cancel('帶cancel按鈕的彈窗')sg.popup_ok_cancel('帶OK和cancel按鈕的彈窗')sg.popup_error('帶紅色error按鈕的彈窗')sg.popup_auto_close('幾秒後自動關閉的彈窗')

最後一個執行後程序會在2s左右自動退出,除了以上的簡單的預設函式外,還可以手動設定引數,相關的引數如下

比如設定一個定製化的小視窗,進行相關引數的新增

sg.popup(	'這是彈窗',	title='Hello',	button_color=('#A81B0C', '#FFFFFF'),	background_color='#F47264',	line_width=2,	custom_text=' 好的 ')

輸出結果:(第一個引數就是要顯示的資訊,可以是單個,也可多個字串,多個字串時候,預設換行,如果是單個字串可以透過line_with指定每行的寬度)

當第一個引數是多個字串時,自動換行顯示(由於自動的窗體長寬很小,所以標題就沒有看到,但不是代表不顯示,下面的示例中就可以看到)

2.3 文字內容彈窗

採用popup_scrolled()方法,括號中新增要顯示的內容即可

text = '''大家好,我們一起來學習PySimpleGUI製作簡單的圖形使用者介面。'''sg.popup_scrolled(text,title='Hello')

輸出結果為:(這裡的標題就正常的顯示出來了)

這個文字內容彈窗裡面也有相關的設定引數,可以根據自己的需要進行設定,引數如下:(注意之前的彈窗的引數也可以在這類彈窗中使用,比如剛剛用的title)

2.4 獲取使用者輸入的彈窗

採用popup_get_text()方法,括號內容有點類似input()語句中的提示語,提醒使用者輸入

text1 = sg.popup_get_text('請輸入文字1')print(text1)text2 = sg.popup_get_text('請輸入文字2')print(text2)

輸出結果為:(當點選Ok時候控制檯輸出端就會獲取到使用者輸入的文字,如果是點選Cancel,輸出端為None,這裡執行了兩次使用者輸入彈出的指令,當第一次輸入後點擊Ok會自動彈出第二個視窗)

該類彈窗也有自己特定的引數供選擇,比如既然進行輸入的操作,有時輸入密碼時候就不希望別人看到,就可以採用輸入的顯示方式,如下

測試進行密碼隱藏輸入,可以直接順勢將使用者輸入的密碼也以彈窗的形式展現

2.5 檔案選擇彈出視窗

直接採用sg.popup_get_file()方法,括號裡面的內容也是輸入的提示語

選擇後就會把詳細的地址直接顯示在輸入框中,如下

那麼同樣該類彈出也有自己的特有屬性引數設定,具體如下。裡面的每個引數幾乎都是超級常用的引數,可以自行測試一下。

2.6 資料夾選擇視窗

採用sg.popup_get_folder()方法,括號裡面的內容也是輸入的提示語。執行程式後會彈出選擇檔案的視窗,滑鼠選擇後就會把資料夾的路徑新增到輸入框中

2.7 進度條彈窗

採用sg.one_line_progress_meter()方法,括號中輸入相關的引數設定內容

for i in range(1000):	sg.one_line_progress_meter(		'進度條',		i + 1,		1000,		'該進度條key',		'這是一個進度條'	)

輸出結果為:(會進行動態載入,直到達到100%)

當然此類彈窗也有自己特有的引數設定,如下。比如常見的設定豎直的還橫向的,捲軸的上下限等。

比如嘗試一下不同引數的組合輸出

for i in range(1, 1000):	sg.one_line_progress_meter(		'進度條',		i + 1,		1000,		'該進度條key',		'這是一個進度條',		orientation='h',		bar_color=('#F47264', '#FFFFFF')	)

輸出結果為:

3 製作簡易壓縮軟體3.1 功能需求軟體執行後彈出視窗讓使用者選擇一個資料夾使用者選擇後再彈出視窗讓使用者選擇壓縮包儲存的位置和名稱使用者輸入完成後將該資料夾內所有的檔案進行壓縮打包完成壓縮後再彈出一個視窗告訴使用者這個壓縮包的體積大小3.2 功能拆解

(1)軟體執行後彈出視窗讓使用者選擇一個資料夾

popup_get_folder()

(2)使用者選擇後再彈出視窗讓使用者選擇壓縮包儲存的位置和名稱

popup_get_file()save_as=Truedefault_extension = 'zip'

(3)使用者輸入完成後將該資料夾內所有的檔案進行壓縮打包

zipfile模組

(4)完成壓縮後再彈出一個視窗告訴使用者這個壓縮包的體積大小

os.stat()讀取檔案資訊popup()彈窗顯示資料3.3 全部程式碼

參考程式碼:(主要是細節部分,對於壓縮路徑的設定,需要進行處理一下,不然最後解壓縮的會出現很多層級的不必要資料夾)

import PySimpleGUI as sgimport zipfileimport osfolder = sg.popup_get_folder('請選擇要壓縮的資料夾')zip_path = sg.popup_get_file(	'請選擇要儲存的壓縮包位置',	save_as=True,	default_extension='zip',	file_types=(('壓縮包', '.zip'), ))with zipfile.ZipFile(zip_path, 'w') as zipobj:	for file in os.scandir(folder):		zipobj.write(file.path, file.path.replace(folder, '.'))zip_size = os.stat(zip_path).st_size // 1024sg.popup(f'壓縮包體積大小為:{zip_size} KB')

輸出結果演示如下:(完美,撒花✿✿ヽ(°▽°)ノ✿)

20
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • tomcat容器部署和執行springboot專案