python tk combobox设置值为空_Python笔记_ii)猜数GUI

引言:Python猜数
,暂时不想修改了。

5fadf84788a448fbdec8cb9322c66d48.png
图1
  • 首先是解决方案,导入模块。
# -*- coding: utf-8 -*-
"""
Created on Mon Mar  2 15:02:39 2020
@author: 参宿四今天炸了吗
"""
'''导入模块'''
import tkinter as tk
import tkinter.messagebox #弹窗提示信息
import sys
import random
import re
  • 然后就是定义初始化。
'''随机产生介于0~1024的整数'''
number = random.randint(0,1024)
flag = 1 #定义结束标记
num = 0 #计数
numberMax = 1024 #数值上限
numberMin = 0 #数值下限
  • 创建应用程序窗口并置空。
'''创建应用程序窗口'''
root = tk.Tk()
root.title("0~1024猜字游戏") #Title
root.geometry("300x100") #设置窗口的大小

'''初始化置空'''
varNumber = tk.StringVar()
varNumber.set("")
  • 判断用户输入次数。
'''
   判断用户直到
   猜对所用的次数
   并弹出输入信息...
   '''
def Judge():
    if num == 1 :
        tk.messagebox.showinfo(title="0~1024猜字游戏",message="LUCKLY!CONGRATULATION!nYou use it once and you get it right!nThe true number is %s."% number)
    elif num < 10 :
        tk.messagebox.showinfo(title="0~1024猜字游戏",message="EXCELLENT!CONGRATULATION!nYou use it {0:} times!nThe true number is {1:}.".format(num,number))
    elif num < 50 :
        tk.messagebox.showinfo(title="0~1024猜字游戏",message="GOOD!CONGRATULATION!nYou use it {0:} times!nThe true number is {1:}.".format(num,number))
    else :
        tk.messagebox.showinfo(title="0~1024猜字游戏",message="OK!nYou use it {0:} times!nThe true nuber is {1:}.".format(num,number))
  • 猜数正确与否的判断。
'''猜数字程序'''
def Guess():
    '''全局变量'''
    global flag
    global num
    global numberMax
    global numberMin
    global number
    while flag :
        if entryNumber.get() == "" : #若输入为空
            '''文本输入框上方给出提示信息'''
            labelTip("Error!Please enter again.")
            Guess(root) #回到窗口
        else :#输入非空转化为整型
            getNumber = int(entryNumber.get())
            if getNumber == number : #猜对则返回出口
                num += 1 #计数+1
                labelTip("Congratulation!You win the game!")
                Judge() #统计猜数的次数
                flag = 0
            elif getNumber < number : #若小于被猜数
                if getNumber > numberMin:
                    '''大于下界则更换下界'''
                    numberMin = getNumber
                    num += 1
                    labelTip_Min.config(labelTip_Min,text=numberMin)
                labelTip("Sorry!You guess a little number!Again...")
                Guess(root) #重新猜数
            else: #若大于被猜数
                if getNumber < numberMax:
                    '''小于上界则更换上界'''
                    numberMax = getNumber
                    num += 1
                    labelTip_Max.config(labelTip_Max,text=numberMax)
                labelTip("Sorry!You guess a big number!Again...")
                Guess(root) #重新猜数
  • 两个
    的函数调用。
'''置空用户输入'''
def Cancle():
    # 清空用户的本次输入
	varNumber.set("")

'''退出程序'''
def Quit():
    # 退出
	root.quit()
	root.destroy()
  • 输入框上方提示信息。
'''输入框上方给出提示信息'''   
def labelTip(vText):
    labelVal_Tip.config(labelVal_Tip,text=vText)  
  • 设置窗口中数值上下界的位置。
'''设置窗口中数值上下界的位置'''
line_aTip = tk.Frame(root)
labelTip_Max = tk.Label(line_aTip,text=numberMax)
labelTip_Min = tk.Label(line_aTip,text=numberMin)
labelTip_Max.pack(side = "top",fill = "x")
labelTip_Min.pack(side = "bottom",fill = "x")
line_aTip.pack(side = "left",fill = "y")
  • 输入框提示信息的大小位置。
'''输入框提示信息的大小位置'''
lineQuestion = tk.Frame(root)
labelVal_Tip = tk.Label(lineQuestion,width="80")
labelVal_Tip.pack(side = "left")
lineQuestion.pack(side = "top",fill = "x")

dc15e04a31c0e61ae5a3fe28e6d6806e.png
图2 运行结果
  • 设置窗口中三个
    的样式。
'''设置窗口中三个Button的样式'''
#labelTip = tk.Label(root,text="Please enter an interger from 0 to 1024",justify=tk.RIGHT,width=80)
entryNumber = tk.Entry(root,width=120,textvariable=varNumber)
buttonGuess = tk.Button(root,text="START",relief=tk.RAISED,command=Guess,fg="green")
buttonCancle = tk.Button(root,text="EMPTY",relief=tk.RAISED,command=Cancle,fg="gray")
buttonQuit = tk.Button(root,text="QUIT",relief=tk.RAISED,command=Quit,fg="red")
  • 设置窗口中三个
    的位置排放。
'''设置窗口中三个Button的位置排放'''
#labelTip.place(x=30,y=5,width=250,height=20)
entryNumber.place(x=100,y=30,width=110,height=23)
buttonCancle.place(x=70,y=70,width=50,height=20)
buttonGuess.place(x=130,y=70,width=50,height=20)
buttonQuit.place(x=190,y=70,width=50,height=20)
labelTip("Please enter an interger from 0 to 1024")
print(number)
'''窗口运行循环'''
if __name__ == '__main__':
	root.mainloop()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值