【发布时间】:2018-03-13 18:24:05
【问题描述】:
我目前有一个函数可以在单击按钮时创建 2 个输入框。这些输入框的值需要输入到数据库中。这样做的问题是,每次单击按钮时,输入框的名称都与之前的相同。这意味着如果按钮被点击两次,那么当它被提交到数据库时,只会输入最后一组框中的值。这是代码:
def new(self):
global ExerciseCount
ExerciseCount = ExerciseCount + 1
print (ExerciseCount)
for num in range(ExerciseCount):
self.Exercises = Entry(self.FrameExercise, bg = "PaleTurquoise1", font =("Arial","16"), width = 20)
self.Exercises.grid(row=2+ExerciseCount, column=1)
global WeightCount
WeightCount = WeightCount + 1
print (WeightCount)
for num in range(WeightCount):
self.Weights = Entry(self.FrameExercise, bg = "PaleTurquoise1", font =("Arial","16"), width = 4)
self.Weights.grid(row=2+WeightCount, column=2)
def Update(self):
global MemberID
connection = sqlite3.connect(r"F:\TESTING\Program\Accounts.db")
cursor = connection.cursor()
Exercise = self.Exercises.get()
Weight = self.Weights.get()
ID = self.ent_MemberID.get()
cursor.execute("INSERT INTO Exercises (Exercise, Weight, ID) VALUES (?,?,?)",
(Exercise, Weight, ID,))
connection.commit()
当点击按钮时,只有最后一组输入框被提交到数据库。这可能取决于我使用.get() 从条目中检索值,但是我不知道任何替代方案,因为我仍然只是一名学生。
我还尝试通过为它们分配一个数字来迭代输入框,但是它出现了一个错误,指出无法分配一个函数。
如果有任何方法可以获取每个输入框中的值,我将不胜感激。
【问题讨论】:
标签: python tkinter sqlite tkinter-entry