Mininterface: 一行代碼實現GUI、TUI、CLI和配置文件解析
經常有人說Python自帶電池,但你可能還沒聽說過這個電池單元。
背景
我有很多想法,一直以來都為UI設計耗費大量時間而苦惱,即使實現起來很簡單。當我在遠程計算機上使用實用程序時,需要一個交互式TUI;在本地使用時,我想要一個GUI(因為GUI是唯一適合非熟練用戶的選項);但對於高級用戶,我需要一個CLI,以便他們可以自動化腳本。
多年來,我一直研究是否已經存在這樣的東西。 5月份,我進行了一項大型研究,比較了30個當前的庫,沒有找到匹配的。最終,我創建了這個完美的程序,在過去的六個月裡,我一直在所有項目中使用它。它也可以為其他人節省大量工作。
Hello World
關鍵在於,你使用dataclass(es)來保存程序配置,這是唯一的條件。 Mininterface負責其餘部分。忘記argparse吧。
看看這個dataclass,你把它包裝到run(Env)中,就完成了。
from dataclasses import dataclass from mininterface import run @dataclass class Env: my_str: str = "Hello" my_int: int = 10 m = run(Env) m.form() print(m.env.my_int) # 10
當你調用m.form()
方法時,會彈出一個對話框。在圖形環境中,它看起來像這樣:
如果沒有顯示可用,我們將堅持使用文本界面。仍然是完全交互式的(你甚至可以使用鼠標)。
每個屬性也可以通過命令行訪問。
最後,如果存在名為program.yaml
的文件,所有值都將從該文件獲取默認值。很簡單,不是嗎?
更多功能
由於我編寫這個庫的最初動力是挫敗感,你可能會發現許多細節也能消除你的挫敗感。嵌套配置、選擇處理(流暢!)、驗證、其他有用的對話框模板、圖像顯示(是的,即使在終端中)……在過去幾周里,我們添加了一個很棒的日曆用於日期/時間選擇。這不僅僅是一個看起來不錯但使用起來令人沮喪的企業風格日曆。這個日曆是為真正的用戶設計的。箭頭鍵的行為很智能,並且一切都可以完全通過鍵盤控制。
看看文檔。我從經驗中知道,如果代碼片段不能立即運行,或者代碼片段只是一個存根,我傾向於丟棄整個項目。這就是為什麼我確保所有代碼示例都是自包含的,並且總是包含屏幕截圖,以便清楚地了解程序的每個部分的作用。
想法
最好的部分?你不需要自己不斷地重新發明界面。
對圖像的顯示方式感到惱火嗎?改進它一次,它不僅會增強你的程序,還會增強所有使用Mininterface的項目。我們可以攜手合作。
即使我努力保持界面的穩定性和高度直觀性,我也樂於接受更改和新功能。你覺得怎麼樣?還有什麼缺失?什麼應該看起來更好?最大的痛點是什麼?什麼會說服你嘗試一下?
以上是我創建了一個庫,將GUI和TUI添加到您的項目中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具