亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年12月28日 09:22:25   作者:somenzz  
這篇文章主要介紹了一個非常簡單好用的Python圖形界面庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

那有朋友可能問了:一定要學(xué)習(xí)圖形界面嗎?

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

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

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

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

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

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

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

import PySimpleGUI as sg            # Part 1 - 導(dǎo)入庫
 
# 定義窗口的內(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 Window
event, values = window.read()          # Part 4 - 開啟主循環(huán) window.read()
 
# Do something with the information gathered
print('Hello', values[0], "! Thanks for trying PySimpleGUI")
 
# Finish up by removing from the screen
window.close() # Part 5 - 關(guān)閉窗口

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

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

多個窗口

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

為簡便起見,我將僅展示如何執(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 144081101
import PySimpleGUI as sg
 
# Create some widgets
ok_btn = sg.Button('Open Second Window')
cancel_btn = sg.Button('Cancel')
layout = [[ok_btn, cancel_btn]]
 
# Create the first Window
window = sg.Window('Window 1', layout)
 
win2_active = False
 
# Create the event loop
while 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

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

相關(guān)文章

  • Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

    Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

    筆者最近正在學(xué)習(xí)Pandas數(shù)據(jù)分析,將自己的學(xué)習(xí)筆記做成一套系列文章。本節(jié)主要記錄Pandas中使用stack和pivot實現(xiàn)數(shù)據(jù)透視。感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python的多種對象工廠模式方便代碼維護擴展

    Python的多種對象工廠模式方便代碼維護擴展

    這篇文章主要為大家介紹了Python的多種對象工廠模式更方便我們進行代碼維護擴展,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 跟老齊學(xué)Python之dict()的操作方法

    跟老齊學(xué)Python之dict()的操作方法

    這篇文章主要介紹了dict()的操作方法,由于dict的很多方法跟list類似,所以在詳細介紹dict的同時,也跟list做了對比,是篇非常不錯的文章,有需要的朋友參考下
    2014-09-09
  • torch.optim優(yōu)化算法理解之optim.Adam()解讀

    torch.optim優(yōu)化算法理解之optim.Adam()解讀

    這篇文章主要介紹了torch.optim優(yōu)化算法理解之optim.Adam()解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于python3 的百度圖片下載器的實現(xiàn)代碼

    基于python3 的百度圖片下載器的實現(xiàn)代碼

    這篇文章主要介紹了基于python3 的百度圖片下載器的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • pytorch使用 to 進行類型轉(zhuǎn)換方式

    pytorch使用 to 進行類型轉(zhuǎn)換方式

    今天小編就為大家分享一篇pytorch使用 to 進行類型轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python中cv2模塊如何安裝使用

    python中cv2模塊如何安裝使用

    這篇文章主要給大家介紹了關(guān)于python中cv2模塊如何安裝的相關(guān)資料,CV2指的是OpenCV2(Open?Source?Computer?Vision?Library),是一個開源的庫平臺計算機視覺庫,有很強大的圖片處理功能,可實現(xiàn)圖像處理和計算機視覺方面的很多通用算法,需要的朋友可以參考下
    2023-10-10
  • tensorflow模型文件(ckpt)轉(zhuǎn)pb文件的方法(不知道輸出節(jié)點名)

    tensorflow模型文件(ckpt)轉(zhuǎn)pb文件的方法(不知道輸出節(jié)點名)

    這篇文章主要介紹了tensorflow模型文件(ckpt)轉(zhuǎn)pb文件(不知道輸出節(jié)點名),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 在keras下實現(xiàn)多個模型的融合方式

    在keras下實現(xiàn)多個模型的融合方式

    這篇文章主要介紹了在keras下實現(xiàn)多個模型的融合方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python學(xué)習(xí) 流程控制語句詳解

    python學(xué)習(xí) 流程控制語句詳解

    下面小編就為大家?guī)硪黄猵ython學(xué)習(xí) 流程控制語句詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06

最新評論