天天看點

如何用python做一個簡單的輸入輸出互動界面?

想問下你寫的程式怎麼分享給别人使用?

**直接發代碼!**那不會代碼的人豈不是得抓瞎

**那做成網站或者微信小程式!**時間成本太高了,更何況伺服器又是一筆成本,後期可能還得不斷維護

是以最好的方式就是直接做成界面化的GUI,然後轉成exe,直接發給對方就可以應用,從時間成本上計算這種方案最劃算

而且也不用擔心收益,在界面化裡插一張收款碼就可以解決。就算像這樣的“網際網路乞讨”玩法收益不高,但是總比沒有好呀

那用Python做一個GUI最簡單的方式是什麼?

故名思義,easygui必須榜上有名

1easygui

easygui作為簡單的龜,下載下傳還是如往常一樣平淡

pip install easygui
      

這個GUI簡單到什麼程度,三行代碼就能實作一個簡單的輸入輸出界面,還包括了導包這一行代碼

具體用法就是easygui.msgbox() 來顯示資訊,easygui.enterbox() 來輸入資訊

代碼案例可以參考下面:

import easygui
name = easygui.enterbox("你是誰?")
easygui.msgbox(name + " 你好!")

      
如何用python做一個簡單的輸入輸出互動界面?

顯示結果

當然,稍微加點内容,就可以做一個和電腦猜拳的界面化軟體了,代碼貼在下面可以直接複制粘貼去運作

import random
import easygui as G
# 出拳
punches = ['石頭', '剪刀', '布']
computer = random.choice(punches)
user = G.enterbox('請出拳:(石頭、剪刀、布)')  # 請使用者輸入選擇
while user not in punches:  # 當使用者輸入錯誤,提示錯誤,重新輸入
    G.msgbox('輸入有誤,請重新出拳')
    user = G.enterbox('請出拳:(石頭、剪刀、布)')
# 亮拳
def show(U, C):
    G.msgbox('————戰鬥過程————\n   電腦出了:%s \n   你出了:%s\n' % (C, U))
# 勝負
def competition(U, C):
    if ((U == '石頭' and C == '剪刀')
            or (U == '剪刀' and C == '布')
            or (U == '布' and C == '石頭')):
        G.msgbox('—————結果—————\n\t你赢了!')
    elif U == C:
        G.msgbox('—————結果—————\n\t平局!')
    else:
        G.msgbox('—————結果—————\n\t你輸了!')
show(user, computer)
competition(user, computer)
      

除了這兩個最常用的方法,還有其他框可以使用,可以參考官網(http://easygui.sourceforge.net/)的教程,案例非常詳細

如何用python做一個簡單的輸入輸出互動界面?

2其他GUI包

就因為easygui太簡單了,是以還有很多不足,這裡一行也介紹其他可以做GUI的包分享給大家

篇幅有限,把這些包和包的官方教程連結出來,畢竟沒有什麼教程比官方教程更詳細了

   tkinter

https://docs.python.org/3/library/tkinter.html

   PyQT6

https://www.riverbankcomputing.com/static/Docs/PyQt6/

   wxPython

https://www.wxpython.org/

   Gradio

https://github.com/gradio-app/gradio

   Steamlit

https://docs.streamlit.io/

(需要牆)

   Dash

https://plotly.com/dash/

   FastApi

https://fastapi.tiangolo.com/

   Flask

https://flask.palletsprojects.com/en/2.0.x/

   Django

https://docs.djangoproject.com/en/3.2/

你知道的越多,你不知道的就越多

當你知道有個easygui可以很簡單的做出一個GUI程式出來,你就會發現還有這麼多包可以實作更多的GUI功能