Python 模塊EasyGui詳細介紹


轉載:無知小德

 

Python 模塊EasyGui詳細介紹

  • EasyGui 官網: http://easygui.sourceforge.net

  • 官方的教學文檔:http://easygui-docs-0.96\tutorial\index.html
  • 小甲魚翻譯改編的教學文檔:http://bbs.fishc.com/thread-46069-1-1.html

在Windows想用Python開發一些簡單的界面,所以找到了很容易上手的EasyGui庫。下面就分享一下簡單的使用吧。

接下來,我將從簡單,到復雜一點點的演示如何使用這個模塊。希望能給剛接觸easygui的你一點幫助:

根據需求,EasyGui在buttonbox()上建立了一系列的函數供調用。

1、msgBox()

msgbox(msg='(Your message goes here)', title=' ', ok_button='OK', image=None, root=None)

msgbox() 顯示一個消息和提供一個"OK"按鈕,你可以指定任意的消息和標題,你甚至可以重寫"OK"按鈕的內容。 以下是 msgbox() 的實例函數:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# __Author__ = "Ma Qing"
# __date__ = "2017/03/31"
# __Desc__ = 一個最簡單的類似於Java的MessageBox的小窗口

import easygui as g
#對於大部分的EasyGui函數都有默認參數,幾乎所有的組件都會顯示一個消息和標題。
#標題默認是空字符串,信息通暢有一個簡單的默認值
#比如msgbox()函數標題部分的參數就是可選的,所以你調用msgbox的時候可以指定一個消息參數,例如:
msg = g.msgbox("Hello Easy GUI")
#當然你也可以指定信息參數和標題參數
title = g.msgbox(msg="我一定要學會編程!",title="標題部分",ok_button="加油")

 

2、ccbox()

ccbox(msg='Shall I continue?', title=' ', choices=('Continue', 'Cancel'), image=None)

ccbox() 提供一個選擇:Continue 或者 Cancel,並相應的返回 1(選中Continue)或者 0(選中Cancel)。注意 ccbox() 是返回整型的 1 或 0,不是布爾類型的 True 或 False。但你仍然可以這么寫:

import sys
import easygui as g
if g.ccbox("親愛的還玩嗎?",choices=("還要玩!","算了吧/(ㄒoㄒ)/~~")):
    g.msgbox("還是不玩了,快睡覺吧!")
else:
     sys.exit(0)

 

3、ynbox()

老實說,這個函數和ccbox()功能一模一樣。。。。。一下省略好幾十字。。。

4、buttombox()

buttonbox(msg='', title=' ', choices=('Button1', 'Button2', 'Button3'), image=None, root=None)

可以使用 buttonbox() 定義自己的一組按鈕,buttonbox() 會顯示一組你定義好的按鈕。

當用戶點擊任意一個按鈕的時候,buttonbox() 返回按鈕的文本內容。如果用戶取消取消或者關閉窗口,那么會返回默認選項(第一個選項)。請看例子:

import easygui as g
g.buttonbox(msg="你喜歡下面哪種水果?",title="",choices=("西瓜","蘋果","草莓"))

 

5、indexbox()

indexbox(msg='Shall I continue?', title=' ', choices=('Yes', 'No'), image=None) 

基本跟上面一樣,區別就是當用戶選擇第一個按鈕的時候返回序列號0,選擇第二個按鈕時候返回序列號1。

6、boolbox()

boolbox(msg='Shall I continue?', title=' ', choices=('Yes', 'No'), image=None) 

如果第一個按鈕被選中則返回 1,否則返回 0。

7、在buttonbox()中顯示圖片

當你調用一個 buttonbox 函數(例如 msgbox(), ynbox(), indexbox() 等等)的時候,

你還可以為關鍵字參數 image 賦值,這是設置一個 .gif 格式的圖像(注意僅支持 GIF 格式哦):

import easygui as g
g.buttonbox("大家說嗅嗅可愛嗎?",image="xiuxiu.gif",choices=("可愛","不可愛","財迷"))

 

 8、choicebox()

choicebox(msg='Pick something.', title=' ', choices=())  

按鈕組件方便提供用戶一個簡單的按鈕選項,但如果有很多選項,或者選項的內容特別長的話,更好的策略是為它們提供一個可選擇的列表。

choicebox() 為用戶提供了一個可選擇的列表,使用序列(元祖或列表)作為選項,這些選項顯示前會按照不區分大小寫的方法排好序。  

另外還可以使用鍵盤來選擇其中一個選項(比較糾結,但一點兒都不重要):  

  • 例如當按下鍵盤上的"g"鍵,將會選中的第一個以"g"開頭的選項。
  • 再次按下"g"鍵,則會選中下一個以"g"開頭的選項。
  • 在選中最后一個以"g"開頭的選項的時候,再次按下"g"鍵將重新回到在列表的開頭的第一個以"g"開頭的選項。
  • 如果選項中沒有以"g"開頭的,則會選中字符排序在"g"之前("f")的那個字符開頭的選項。
  • 如果選項中沒有字符的排序在"g"之前的,那么在列表中第一個元素將會被選中。  

綜合我們之前學習的文件功能,舉個通俗的例子

import easygui as g

msg = "選擇你喜歡的一種業余生活"
title = ""
choicess_list = ["看書","游泳","騎自行車","玩游戲"]
reply = g.choicebox(msg,choices=choicess_list)

 

 9、mutchoicebox()

multchoicebox(msg='Pick as many items as you like.', title=' ', choices=(), **kwargs)

multchoicebox() 函數也是提供一個可選擇的列表,與 choicebox() 不同的是,multchoicebox() 支持用戶選擇 0 個,1 個或者同時選擇多個選項。
multchoicebox() 函數也是使用序列(元祖或列表)作為選項,這些選項顯示前會按照不區分大小寫的方法排好序。

import easygui as g
g.multchoicebox(msg="請選擇你愛吃哪些水果?",title="",choices=("西瓜","香蕉","蘋果",""))

 

10、enterbox()

enterbox(msg='Enter something.', title=' ', default='', strip=True, image=None, root=None)

enterbox() 為用戶提供一個最簡單的輸入框,返回值為用戶輸入的字符串。

默認返回的值會自動去除首尾的空格,如果需要保留首尾空格的話請設置參數 strip=False。

import easygui as g
g.enterbox(msg="請說出此時你的心里話",title="心里悄悄話")

 

11、interbox()

integerbox(msg='', title=' ', default='', lowerbound=0, upperbound=99, image=None, root=None, **invalidKeywordArguments)

integerbox() 為用戶提供一個簡單的輸入框,用戶只能輸入范圍內(lowerbound參數設置最小值,upperbound參數設置最大值)的整型數值,否則會要求用戶重新輸入。

import easygui as g
g.integerbox(msg="請輸入您的得分",title="分數計",lowerbound=0,upperbound=100)

 

12、mulenterbox()

multenterbox(msg='Fill in values for the fields.', title=' ', fields=(), values=())

multenterbox() 為用戶提供多個簡單的輸入框,要注意以下幾點:

  • 如果用戶輸入的值比選項少的話,則返回列表中的值用空字符串填充用戶為輸入的選項。
  • 如果用戶輸入的值比選項多的話,則返回的列表中的值將截斷為選項的數量。
  • 如果用戶取消操作,則返回域中的列表的值或者None值
復制代碼
 1 import easygui as g
 2 
 3 msg = "請填寫一下信息(其中帶*號的項為必填項)"
 4 title = "賬號中心"
 5 fieldNames = ["*用戶名","*真實姓名","固定電話","*手機號碼","QQ","*Email"]
 6 fieldValues = []
 7 fieldValues = g.multenterbox(msg,title,fieldNames)
 8 #print(fieldValues)
 9 while True:
10     if fieldValues == None :
11         break
12     errmsg = ""
13     for i in range(len(fieldNames)):
14         option = fieldNames[i].strip()
15         if fieldValues[i].strip() == "" and option[0] == "*":
16             errmsg += ("【%s】為必填項   " %fieldNames[i])
17     if errmsg == "":
18         break
19     fieldValues = g.multenterbox(errmsg,title,fieldNames,fieldValues)
20 print("您填寫的資料如下:%s" %str(fieldValues))
復制代碼

13、passwordbox()

passwordbox(msg='Enter your password.', title=' ', default='', image=None, root=None)

passwordbox() 跟 enterbox() 樣式一樣,不同的是用戶輸入的內容用"*"顯示出來,返回用戶輸入的字符串:

import easygui as g
g.passwordbox(msg="請輸入您的密碼")

 

import easygui as g
msg = "請輸入你的密碼"
user_password = g.passwordbox(msg)
print(str(user_password))

 

14、multpasswordbox()

multpasswordbox(msg='Fill in values for the fields.', title=' ', fields=(), values=())

multpasswordbox() 跟 multenterbox() 使用相同的接口,但當它顯示的時候,最后一個輸入框顯示為密碼的形式("*"):

import easygui as g
msg = "請輸入用戶名和密碼"
title = "用戶登錄接口"
user_info = []
user_info = g.multpasswordbox(msg,title,("用戶名","密碼"))
print(user_info)

 

15、textbox()

textbox(msg='', title=' ', text='', codebox=0) 

textbox() 函數默認會以比例字體(參數 codebox=1 設置為等寬字體)來顯示文本內容(會自動換行哦),這個函數適合用於顯示一般的書面文字。
注:text 參數(第三個參數)可以是字符串類型,列表類型,或者元祖類型。

 16、diropenbox()

 diropenbox(msg='',title='',default='')

該函數用於提供一個對話框,返回用戶選擇的目錄名,該目錄名是帶有完整的路徑的

選擇Cancel的話,返回值默認為None

import easygui
msg = '選擇一個文件,將會返回該文件的完整的目錄'
title = '文件選擇對話框'
default = r'F:flappy-bird'
full_file_path = easygui.diropenbox(msg,title,default)
print('選擇的文件的完整的路徑為:'+str(full_file_path))

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM