python - 类 tkinter 之间的 Spinbox .get()
问题描述
我目前正在尝试创建一个循环,其中创建的输入框的数量基于 Spinbox 的值,它与循环处于不同的类中。我知道我的代码已损坏,但我不确定从这里去哪里。spinbox 变量在 StudentAmount2 类中,输入框循环在 ClassLists3 类中。干杯。
import tkinter as tk
from tk import *
LARGE_FONT = ("Verdana", 12)
student_no = 0
class app(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fil="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (HomePage1,StudentAmount2,ClassList3,Subjects4):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(HomePage1)
def show_frame(self, controller):
frame = self.frames[controller]
frame.tkraise()
def set_number(self):
student_no = 0
student_no += Amount.get()
class HomePage1(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Percentage from Grade")
label.grid(row=0, column=0,pady=10, padx=10)
button = tk.Button(self, text="Begin", command=lambda: controller.show_frame(StudentAmount2))
button.grid(row=1, column=0)
#home page is complete
class StudentAmount2(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Number of Students")
label.grid(row=0, column=0, columnspan=2)
SetValue = tk.StringVar()
SetValue.set("0")
Amount = tk.Spinbox(self, from_=1, to=30)
Amount.grid(row=1, column=0, pady=10)
button = tk.Button(self, text="Done", command=lambda: controller.show_frame(ClassList3))
button.grid(row=3, column=0)
button1 = tk.Button(self, text="Set", command=lambda: controller.set_number())
button1.grid(row=2, column=0)
class ClassList3(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
class_list_label = tk.Label(self, text="Class List")
class_list_label.grid(row=0, column=0, columnspan=2)
button1 = tk.Button(self, text="Done", command=lambda: controller.show_frame(Subjects4))
button1.grid(row=31, column=0, columnspan=2)
for y in range(0,2):
for x in range(0, student_no):
student = tk.Entry(self)
student.grid(row=x+1, column=y, padx=5)
class Subjects4(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
button = tk.Button(self, text="Back",command=lambda: controller.show_frame(ClassList3))
button.grid(row=0, column=0)
root = app()
root.mainloop()
解决方案
推荐阅读
- oracle-apex - 如何从 Zip 文件导入 Apex 应用程序
- java - 如何在 SpringBootTest 中模拟 Spring 的 @Retryable 属性,例如 maxAttemps 和延迟
- haskell - 如何在 Haskell 中为唱片店建模
- javascript - 如何使用 Javascript 删除最外层的 XML 元素标签对?
- javascript - 使用 jQuery 从主页清除用户控件中的 ASP TextBox 文本
- c# - 将 ASP.NET Idenity 添加到项目后无法更新数据库
- java - Java 数字格式验证
- reactjs - 如何在模拟提交点击时使用 jest/enzyme 验证 antd 表单字段
- rest - GraphQL 用于读取,Rest 用于写入
- python - Python:将数据框的 2 列附加在一起