Python分分钟带你玩转GUI猜数字游戏
代码步骤如下:
1、导入使用的GUI模块 Tkinter
2、创建GUI的主要应用程序入口
3、添加控件并设置相应的属性
4、编写触发事件响应代码
创建GUI的主要应用程序入口
接下来就是 设置相应的属性
我们为窗口添加一个控件
用于设置提示文本
编写触发事件响应代码
首先我们当然是需要一个随机数的生成,也需要引入这个标准库
定义需要引用到的全局变量,以便后面的函数去使用
接下来我们需要关闭窗口的事件(destory)
就像我们页面一样,按钮点击就可以把某个不需要显示的控件给关闭掉
```
def btnCloseClick(event):
root.destory()
```
是不是很简单呢,就两行代码,就可以关闭窗口了,我们拭目以待吧
除了关闭按钮之外,我们当然还需要一个重置窗口
就像我们表单登录一样,重置密码
```
def btnResetClick(event):
global number # 引用外部变量
global running # 引用外部变量
global num # 引用外部变量
global maxnum # 引用外部变量
global minnum # 引用外部变量
number = random.randint(100,999) # 重新赋值
running = True # 重新赋值
num = 0 # 重新赋值
labelChange("请输入100到999之间任意整数:")
entry_num.delete(0,'end')
labelRange('目前的范围是[%d,%d]'%(minnum,maxnum))
print(number)
```
我们要猜数字,当然需要一个文本框用来输入数字,然后确定,给出提示
```
def btnGuessClick(event):
global num
global running
global maxnum
global minnum
if running:
answer = int(entry_num.get())
if answer == number:
labelChange("恭喜答对了!")
num+=1
running = False
numGuess()
elif answer < number:
num+=1
labelChange("小了哦")
if answer>minnum:
minnum=answer
else:
num+=1
labelChange("大了哦")
if answer<maxnum:
maxnum=answer
labelRange('目前的范围是[%d,%d]'%(minnum,maxnum))
else:
labelChange('你已经答对啦.')
```
最终我们才对了游戏的结果,我们还要给出信息提示:
```
def numGuess():
if num == 1:
labelChange('好棒!一次答对!')
elif num < 9:
labelChange('好厉害,尝试次数:'+str(num))
elif num < 19:
labelChange('还行,尝试次数:'+str(num))
else:
labelChange('您都试了超过20次了。。。。尝试次数:'+str(num))
def labelChange(vText): # 定义控件信息修改函数
label_info.config(label_info,text=vText)
def labelRange(cText):
label_range.config(label_range,text=cText)
```
最终所有代码整合起来的结果,由程序运行如下