欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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()

效果

python tkinter做的生成计算题的GUI

python tkinter做的生成计算题的GUI

python tkinter做的生成计算题的GUI

过年的时候,给到访的熊孩子练一练,嘿嘿嘿

 

本文地址:https://blog.csdn.net/z555hzl/article/details/110929608

相关标签: python gui