国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

瀏覽:89日期:2022-07-01 09:37:34

前一陣,我在為朋友編寫一個源代碼監(jiān)控程序的時候,發(fā)現(xiàn)了一個 Python 領域非常簡單好用的圖形界面庫。

說起圖形界面庫,你可能會想到 TkInter、PyQt、PyGUI 等流行的圖形界面庫,我也曾經(jīng)嘗試使用,一個很直觀的感受就是,這太難用了。就去網(wǎng)上搜搜,看看有沒有一些 demo,拿來改改,結果很少有,當時我就放棄了這些圖形庫的學習,轉(zhuǎn)而使用了 vue+flask 的形式以瀏覽器網(wǎng)頁作為程序界面,因為我會這個,即使實現(xiàn)起來稍微麻煩,但是也快。

那有朋友可能問了:一定要學習圖形界面嗎?

其實不一定,如果你寫的程序都是自己用,或者配合其他程序員使用,那么直接命令行調(diào)用即可,完全不用學習圖形界面?那什么時候要學呢?如果你要做游戲,或者你要為他人(非技術人員)編寫軟件工具,那么你就需要學習圖形界面了。我是后者,偶爾受邀幫別人寫點小工具,因此有個圖形界面體驗會好很多。

今天要說的這個庫就是 PySimpleGUI,在 GitHub 倉庫[1]有 5.1K 個 star,20 天前還有人提交代碼,可以說非常火熱了。

我看了官方文檔,找了個 demo,花了 2 個小時的時間,寫了 56 行代碼,就搞定了一個具有圖形界面的監(jiān)控工具,如下:

要說 PysimpleGUI 最吸引我的地方,在于它有 200 多個示例程序,幾乎覆蓋了日常的開發(fā)需求,拿來稍作修改就可以用,著實方便。

PysimpleGUI 內(nèi)部封裝了 tkinter,Qt(pyside2),wxPython和 Remi,Remi 用于瀏覽器支持,因此你很容易將你的界面搬到瀏覽器中而無需修改代碼。如下圖:

一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

還有最吸引我的一點,就是足夠簡單,在幾分鐘內(nèi)用幾行代碼就可以構建自定義 GUI 布局,對于初學者來說足夠容易,對于高級用戶來說足夠強大。廣泛的文檔。有 100 多種內(nèi)置顏色主題,200 多個示例程序[2],還經(jīng)常更新。如果你玩 Raspberry Pi,也可以用這個庫寫界面,你說好用不好用。

通常一個 PySimpleGUI 程序包含 5 個部分,見下面代碼的注釋:

import PySimpleGUI as sg # Part 1 - 導入庫 # 定義窗口的內(nèi)容layout = [ [sg.Text('What’s your name?')], # Part 2 - 排版 [sg.Input()], [sg.Button(’Ok’)] ] # 創(chuàng)建窗口window = sg.Window(’Window Title’, layout) # Part 3 - 窗口定義# Display and interact with the Windowevent, values = window.read() # Part 4 - 開啟主循環(huán) window.read() # Do something with the information gatheredprint(’Hello’, values[0], '! Thanks for trying PySimpleGUI') # Finish up by removing from the screenwindow.close() # Part 5 - 關閉窗口

執(zhí)行上述代碼,會得到一個如下圖所示的程序:

一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

這僅僅是一個類似 hello world 的程序,PySimpleGUI 還可以做出更加強大的圖形界面和游戲界面,

多個窗口

我看到許多新程序員都在掙扎的一件事是在他們選擇的GUI工具包中打開多個窗口。 幸運的是,PySimpleGUI明確標明了如何執(zhí)行此操作的說明。 實際上,他們有兩種不同的“設計模式”來做這種事情。

為簡便起見,我將僅展示如何執(zhí)行兩個活動窗口:

# -*- coding: utf-8 -*-# https://www.jianshu.com/u/69f40328d4f0# https://github.com/china-testing/python-api-tesing# https://china-testing.github.io/# support q group: 630011153 144081101import PySimpleGUI as sg # Create some widgetsok_btn = sg.Button(’Open Second Window’)cancel_btn = sg.Button(’Cancel’)layout = [[ok_btn, cancel_btn]] # Create the first Windowwindow = sg.Window(’Window 1’, layout) win2_active = False # Create the event loopwhile True: event1, values1 = window.read(timeout=100) if event1 in (None, ’Cancel’): # User closed the Window or hit the Cancel button break if not win2_active and event1 == ’Open Second Window’: win2_active = True layout2 = [[sg.Text(’Window 2’)], [sg.Button(’Exit’)]] window2 = sg.Window(’Window 2’, layout2) if win2_active: events2, values2 = window2.Read(timeout=100) if events2 is None or events2 == ’Exit’: win2_active = False window2.close() window.close()參考資料

[1] GitHub 倉庫: https://github.com/PySimpleGUI/PySimpleGUI

[2] 200 多個示例程序: https://github.com/PySimpleGUI/PySimpleGUI/tree/master/DemoPrograms

到此這篇關于一個非常簡單好用的Python圖形界面庫的文章就介紹到這了,更多相關Python 圖形界面庫內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲在成人网在线看 | 久久香蕉精品视频 | 国产黄色小视频 | 欧美一区二区三区精品 | 一级特色黄大片 | 一区二区三区 日韩 | 亚洲欧美影院 | 欧美日韩不卡在线 | 精品综合久久久久久99 | 一级视频网站 | 成人夜色视频网站在线观看 | 一区二区三区免费精品视频 | 看黄免费网站 | 99国产福利视频在线观看 | 中文字幕亚洲一区二区v@在线 | 久久99精品久久久久久h | 国产精品免费综合一区视频 | 97在线播放| 99久久久久国产 | 黄色wwwxxx| 国产高清第一页 | 国产99久9在线视频 国产99久久 | 亚洲免费视频网站 | 日韩欧美成人乱码一在线 | 久久综合香蕉久久久久久久 | 久久免费99精品久久久久久 | 中国一级特黄视频 | 蜜桃欧美性大片 | 国产在线高清视频 | 亚洲国产综合久久精品 | 久久青草免费线观最新 | 一区二区三区四区视频 | 欧美美女视频网站 | 亚洲久草视频 | 欧美日韩精品一区二区三区视频在线 | 国产精品合集一区二区 | 亚洲精品综合久久中文字幕 | 成人免费福利网站在线看 | 亚洲欧美在线一区二区 | 国产精自产拍久久久久久蜜 | 日本精品视频在线播放 |