python tkinter做的生成计算题的GUI
程序员文章站
2022-06-17 15:58:03
前言提示:把前段时间做的一个训练小朋友计算能力的python小程序做了一个封装GUI,使用起来非常方便,题海战术可以大幅度提升小朋友的计算能力,目前做好了小数正负数整数的程序,欢迎大家探讨。一、pandas是什么?代码如下:import tkinterimport randomfrom tkinter.messagebox import showinfoimport tkinter.simpledialogimport tkinter.font as tfglobal ......
前言
提示:把前段时间做的一个训练小朋友计算能力的python小程序做了一个封装GUI,使用起来非常方便,题海战术可以大幅度提升小朋友的计算能力,目前做好了小数正负数整数的程序,欢迎大家探讨。
一、代码
代码如下:
import tkinter
import random
from tkinter.messagebox import showinfo
import tkinter.simpledialog
import tkinter.font as tf
global val
val = 0
global ture_cnt
ture_cnt = 0
global all_cnt
all_cnt = 0
def init_page():
def qingchu():
text1.delete(1.0,tkinter.END)
def tongji():
txt1="已做{0}题 对了{1}题\n".format(str(all_cnt),str(ture_cnt))
text1.insert("insert",txt1,"jisuan")
def jia(a,b,c,d):
reslt=a+b
txt1="{0} + {1} =".format(str(a),str(b))
text1.insert("insert",txt1,"jisuan")
print(reslt)
return reslt
def jian(a,b,c,d):
reslt=a-b
txt2="{0} - {1} =".format(str(a),str(b))
text1.insert("insert",txt2,"jisuan")
print(reslt)
return reslt
def cheng(a,b,c,d):
reslt=a*b
txt3="{0} * {1} =".format(str(a),str(b))
text1.insert("insert",txt3,"jisuan")
print(reslt)
return reslt
def chu(a,b,c,d):
reslt=d/c
txt4="{0} / {1} =".format(str(d),str(c))
text1.insert("insert",txt4,"jisuan")
print(reslt)
return reslt
def other(a,b,c,d):
print('error')
return 0
def moshi_choose(num,a,b,c,d):
numbers = {
1 : jia,
2 : jian,
3 : cheng,
4 : chu
}
method = numbers.get(num,other)
if method:
out=method(a,b,c,d)
return out
def queren():
temp=float(shuru.get())
txt1="{0}\n".format(str(temp))
text1.insert("insert",txt1,"jisuan")
global val
if abs(val-temp) < 0.00001:
global ture_cnt
ture_cnt = ture_cnt + 1
text1.insert("insert","对了\n","tag_dui")
print("对了")
else:
txt1="错了,正确答案为:{0}\n".format(str(val))
text1.insert("insert",txt1,"tag_cuo")
print("错了,正确答案为:",val)
print("已做",all_cnt,"题","对了",ture_cnt,"题")
def jisuan(x,y,piont,moshi):
a=random.uniform(x,y)
b=random.uniform(x,y)
c=random.randint(0,100)
a=round(a,piont)
b=round(b,piont)
d=a*c
d=round(d,piont)
print(a,b,c,d)
reslt=moshi_choose(moshi,a,b,c,d)
return reslt
def getuser():
global val
h1 = get_choose1.get()
h2 = get_choose2.get()
val=jisuan(1,100,h2,h1)
global all_cnt
all_cnt = all_cnt + 1
init_page=tkinter.Tk()
init_page.title("功能选择") #设置窗口标题
init_page.geometry("800x500") #设置窗口尺寸
l1=tkinter.Label(init_page,text="模式选择:") #标签
l1.grid(row=0) #指定包管理器放置组件
choose1 = [("+", 1),("-", 2),("*", 3),("/", 4)]
get_choose1 = tkinter.IntVar()
for i, num in choose1:
b = tkinter.Radiobutton(init_page, text=i, variable=get_choose1, value=num)
b.grid(row=0,column=num)
l2=tkinter.Label(init_page,text="小数位:") #标签
l2.grid(row=1,column=0)#指定包管理器放置组件
choose2 = [("0", 0),("2", 2)]
get_choose2 = tkinter.IntVar()
for i, num in choose2:
b = tkinter.Radiobutton(init_page, text=i, variable=get_choose2, value=num)
b.grid(row=1,column=num+1)
butt = tkinter.Button(init_page,text='生成',command = getuser)
butt.grid(row=0,column=6,rowspan=2,columnspan=4)
text1 = tkinter.Text(init_page)
text1.grid(row=5,column=1,rowspan=5,columnspan=5)
#ft1 = tf.Font(family='仿宋',size=10)
ft2 = tf.Font(family='微软雅黑',size=20)
text1.tag_config("tag_cuo", backgroun="yellow", foreground="red",font =ft2)
text1.tag_config("tag_dui", backgroun="blue", foreground="white",font =ft2)
text1.tag_config("jisuan",font =ft2)
shuru = tkinter.Entry(init_page)
shuru.grid(row=3,column=8,rowspan=1,columnspan=1)
button3 = tkinter.Button(init_page,text='输入',command = queren)
button3.grid(row=4,column=8)#按钮
button4 = tkinter.Button(init_page,text='统计',bg = 'blue',command = tongji)
button4.grid(row=5,column=8)#按钮
button5 = tkinter.Button(init_page,text='清除窗口',command = qingchu)
button5.grid(row=6,column=8)#按钮
init_page.mainloop()
init_page()
效果
。
过年的时候,给到访的熊孩子练一练,嘿嘿嘿
本文地址:https://blog.csdn.net/z555hzl/article/details/110929608
上一篇: HTTP请求头和响应头