上节总结
上节课我们学习了字符串。字符串有很多用途,可以表达网页地址、文件路径等。
字符串有替换、查找等方法。我们用替换完成了凯撒密码程序。在课程的最好,我们还了解了什么是字符集。世界通用的字符集是utf-8。
这节课,我们让程序离开黑洞洞的终端,展示到窗口界面上。赶紧一起学习吧!
什么是GUI
GUI是图形用户界面(Graphical User Interface)的意思。我们现在用的软件、程序、游戏都有用户界面。一个美观、简洁的用户界面是软件的核心组成部分。想想看,如果王者荣耀运行在黑白的终端上,暴君、大龙是俩豆腐块,还有多少人会有兴趣玩呢?
easyGUI
easyGUI是python内置的一个图形界面库,通过easyGUI,我们可以很容的开发出一个图形界面来。
- 什么是库呢?我们可以把库理解成别人为我们开发好的工具包。我们把工具包引入进来,就可以使用被人的帮我们开发好的工具了。
- 什么是import? 引入easyGUI很简单,我们直接用
import easygui就完成了easygui的引入。这里的import就是引入的意思,后续课程我们还用用import引入更多的python库。 - 画一个界面引入easygui后,我们就可以很容易的画一个界面了。
import easygui
easygui.msgbox('hello world')
easygui内置了很多的窗口空间。常用的有这几个:
- msgbox 消息提示
easygui.msgbox('hello world') - ynbox 用户确认框
easygui.ynbox('hello world') - 展示图片
import easygui
image = "search.png"
msg = "Do you like this picture?"
choices = ["Yes", "No", "No opinion"]
reply = easygui.buttonbox(msg, image=image, choices=choices)
print(reply)
- choicebox 选择框
msg ="What is your favorite flavor?"
title = "Ice Cream Survey"
choices = ["Vanilla", "Chocolate", "Strawberry", "Rocky Road"]
choice = choicebox(msg, title, choices)
- multenterbox 输入框
import easygui
msg = "填写个人信息"
title = "注册"
fieldNames = ["姓名", "手机号"]
fieldValues = []
fieldValues = easygui.multenterbox(msg, title, fieldNames)
print("回答:", fieldValues)
- 24点升级版下面我们通过这几个控件完成一个图形版24点游戏。
import easygui
# 定义一个题库变量
question_bank = []
# 往题库里放入数字和对应的正确答案
question_bank.append([1, 6, 6, 12, '*++'])
question_bank.append([1, 1, 1, 8, '++*'])
question_bank.append([4, 4, 4, 4, '*++'])
question_bank.append([7, 1, 2, 2, '-**'])
question_bank.append([9, 2, 2, 10, '-*+'])
question_bank.append([7, 2, 1, 10, '**+'])
easygui.msgbox('24点游戏,填写运算符,让4个数字计算得到的结果是24', ok_button='开始游戏')
right_answer = 0
for question in question_bank:
print('24 nums', question[0:4])
msg = question[0:4]
title = "24点"
fieldNames = ["运算符1", "运算符2", "运算符3"]
fieldValues = easygui.multenterbox(msg, title, fieldNames)
if ''.join(fieldValues) == question[4]:
right_answer = right_answer + 1
easygui.msgbox('恭喜你,答对啦!')
else:
easygui.msgbox('很遗憾,打错了,正确答案是' + question[4])
easygui.msgbox('你总共答对了%d道题' % right_answer)
















