【发布时间】:2016-07-17 23:39:03
【问题描述】:
所以我正在使用 python 3 和 tkinter 为学校创建一个 GUI 数学程序,我们必须询问用户他们想要使用什么公式(加、减、乘、除),然后问 10 个问题显示结果页面一旦在该页面上回答了所有 10 个问题,然后循环重新开始。我想创造4个不同的困难
简单 = (1,9) 之间的范围,中等 = (10,24) 之间的范围,困难 = (25,50) 之间的范围,疯狂 = (51,100) 之间的范围
到目前为止,我已经创建了如下所示的 gui,但我想知道我是要在页面类中还是在类之外组织方程式的工作。我对 python/tkinter 很陌生,我以前从未使用过它,但刚刚了解了到目前为止我在 youtube 上观看的时间和时间。
我只想知道从现在开始到哪里放置方程式代码/公式。一旦我知道把它贴在哪里,它就会消失。
(如果您将以下所有代码复制并粘贴到 python 3 中并保存,它将立即生效。由于我将其全部复制到此聊天中,任何问题都将是复制和粘贴中的缩进。
您在下面看到的任何问题,请随时指出。正如我所说,我很新,我 Google 并没有真正提供帮助,因为我不太清楚要输入什么来找到它。
亲切的问候
import tkinter as tk
from tkinter import *
from tkinter import ttk #css kind of thing for tkinter
import random
difficulty = []
LARGE_FONT = ("Times New Roman", 25)
MEDIUM_FONT = ("Times New Roman", 15)
SMALL_FONT = ("Times New Roman", 10)
###Base Code For Pages
class ourprogramclass(tk.Tk):
def __init__ (self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.iconbitmap(self, default="mathsicon.ico")
tk.Tk.wm_title(self, "Mathematic Equation program")
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, AdditionPage, SubtractionPage, MultiplicationPage, DivisionPage ):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
###Page Classes front page
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label1 = tk.Label(self, text = "Mathmatics Problems Quiz", font=LARGE_FONT)
label2 = tk.Label(self, text = "Mathematic Equation program", font=MEDIUM_FONT)
label3 = tk.Label(self, text = "Select Your Operation and Difficulty Level", font=SMALL_FONT)
label1.pack(pady=10,padx=10)
label2.pack(pady=10,padx=10)
label3.pack(pady=10,padx=10)
button1 = tk.Button(self, text = "Addition Equations", font=MEDIUM_FONT,command=lambda: controller.show_frame(AdditionPage)).pack(fill=X)
label = Label(self,text="").pack()
button2 = tk.Button(self, text = "Subtraction Equations", font=MEDIUM_FONT,command=lambda: controller.show_frame(SubtractionPage)).pack(fill=X)
label = Label(self,text="").pack()
button3 = tk.Button(self, text = "Multiplication Equations", font=MEDIUM_FONT,command=lambda: controller.show_frame(MultiplicationPage)).pack(fill=X)
label = Label(self,text="").pack()
button4 = tk.Button(self, text = "Division Equations", font=MEDIUM_FONT,command=lambda: controller.show_frame(DivisionPage)).pack(fill=X)
label = Label(self,text="").pack()
label4 = tk.Label(self, text = "Select Difficulty", font=LARGE_FONT).pack()
def checkbutton_value1():
if (var1.get()):
var2.set(0)
var3.set(0)
var4.set(0)
del difficulty[:]
difficulty.append(1)
print (difficulty[0])
def checkbutton_value2():
if(var2.get()):
var1.set(0)
var3.set(0)
var4.set(0)
del difficulty[:]
difficulty.append(2)
print (difficulty[0])
def checkbutton_value3():
if(var3.get()):
var1.set(0)
var2.set(0)
var4.set(0)
del difficulty[:]
difficulty.append(3)
print (difficulty[0])
def checkbutton_value4():
if(var4.get()):
var1.set(0)
var2.set(0)
var3.set(0)
del difficulty[:]
difficulty.append(4)
print (difficulty[0])
var1 = IntVar()
dif_button1 = tk.Checkbutton(self, text="Easy", variable=var1, command=checkbutton_value1).pack()
var2 = IntVar()
dif_button2 = tk.Checkbutton(self, text="Medium", variable=var2, command=checkbutton_value2).pack()
var3 = IntVar()
dif_button3 = tk.Checkbutton(self, text="Hard ", variable=var3, command=checkbutton_value3).pack()
var4 = IntVar()
dif_button4 = tk.Checkbutton(self, text="Insane", variable=var4, command=checkbutton_value4).pack()
quit_button = tk.Button(self, text='Quit', command=quit, font=MEDIUM_FONT).pack(fill=X, side = BOTTOM)
###Addition Page
class AdditionPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label1 = tk.Label(self, text = "Mathmatics Problems Quiz", font=LARGE_FONT).pack(pady=10,padx=10)
label2 = tk.Label(self, text = "Mathematic Equation program", font=MEDIUM_FONT).pack(pady=10,padx=10)
label3 = tk.Label(self, text = "You have Selected Addition as The Unit", font=SMALL_FONT).pack(pady=10,padx=10)
button1 = tk.Button(self, text = "Reselect Unit", font=MEDIUM_FONT,command=lambda: controller.show_frame(StartPage)).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
#-----THIS IS WHERE I WANT THE EQUATION TO SHOW IN THE LABEL BELOW-----#
question_label = Label(self, text="Enter Your Answer", font=MEDIUM_FONT ).pack()
label = Label(self,text="").pack()
self.entrytext = StringVar()
Entry(self, textvariable=self.entrytext, font=MEDIUM_FONT,).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
submit_button = tk.Button(self, text = "Submit Answer", font=MEDIUM_FONT).pack(fill=X)
quit_button = tk.Button(self, text='Quit', command=quit, font=MEDIUM_FONT,).pack(fill=X, side = BOTTOM)
####Subtraction Page
class SubtractionPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label1 = tk.Label(self, text = "Mathmatics Problems Quiz", font=LARGE_FONT).pack(pady=10,padx=10)
label2 = tk.Label(self, text = "Mathematic Equation program", font=MEDIUM_FONT).pack(pady=10,padx=10)
label3 = tk.Label(self, text = "You have Selected Subtraction as The Unit", font=SMALL_FONT).pack(pady=10,padx=10)
button1 = tk.Button(self, text = "Reselect Unit", font=MEDIUM_FONT,command=lambda: controller.show_frame(StartPage)).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
#-----THIS IS WHERE I WANT THE EQUATION TO SHOW IN THE LABEL BELOW-----#
question_label = Label(self, text="Enter Your Answer", font=MEDIUM_FONT ).pack()
label = Label(self,text="").pack()
self.entrytext = StringVar()
Entry(self, textvariable=self.entrytext, font=MEDIUM_FONT,).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
submit_button = tk.Button(self, text = "Submit Answer", font=MEDIUM_FONT).pack(fill=X)
quit_button = tk.Button(self, text='Quit', command=quit, font=MEDIUM_FONT,).pack(fill=X, side = BOTTOM)
###Multiply Page
class MultiplicationPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label1 = tk.Label(self, text = "Mathmatics Problems Quiz", font=LARGE_FONT).pack(pady=10,padx=10)
label2 = tk.Label(self, text = "Mathematic Equation program", font=MEDIUM_FONT).pack(pady=10,padx=10)
label3 = tk.Label(self, text = "You have Selected Multiplication as The Unit", font=SMALL_FONT).pack(pady=10,padx=10)
button1 = tk.Button(self, text = "Reselect Unit", font=MEDIUM_FONT,command=lambda: controller.show_frame(StartPage)).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
#-----THIS IS WHERE I WANT THE EQUATION TO SHOW IN THE LABEL BELOW-----#
question_label = Label(self, text="Enter Your Answer", font=MEDIUM_FONT ).pack()
label = Label(self,text="").pack()
self.entrytext = StringVar()
Entry(self, textvariable=self.entrytext, font=MEDIUM_FONT,).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
submit_button = tk.Button(self, text = "Submit Answer", font=MEDIUM_FONT).pack(fill=X)
quit_button = tk.Button(self, text='Quit', command=quit, font=MEDIUM_FONT,).pack(fill=X, side = BOTTOM)
###Division Page
class DivisionPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label1 = tk.Label(self, text = "Mathmatics Problems Quiz", font=LARGE_FONT).pack(pady=10,padx=10)
label2 = tk.Label(self, text = "Mathematic Equation program", font=MEDIUM_FONT).pack(pady=10,padx=10)
label3 = tk.Label(self, text = "You have Selected Division as The Unit", font=SMALL_FONT).pack(pady=10,padx=10)
button1 = tk.Button(self, text = "Reselect Unit", font=MEDIUM_FONT,command=lambda: controller.show_frame(StartPage)).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
#-----THIS IS WHERE I WANT THE EQUATION TO SHOW IN THE LABEL BELOW-----#
question_label = Label(self, text="Enter Your Answer", font=MEDIUM_FONT ).pack()
label = Label(self,text="").pack()
self.entrytext = StringVar()
Entry(self, textvariable=self.entrytext, font=MEDIUM_FONT,).pack(fill=X)
label = Label(self,text="").pack()
label = Label(self,text="").pack()
submit_button = tk.Button(self, text = "Submit Answer", font=MEDIUM_FONT).pack(fill=X)
quit_button = tk.Button(self, text='Quit', command=quit, font=MEDIUM_FONT,).pack(fill=X, side = BOTTOM)
app = ourprogramclass()
app.mainloop()
【问题讨论】:
标签: python class user-interface python-3.x tkinter