我正在做一個解決數獨謎題的專案。為了收集輸入,我使用了一個名為“Tkinter”的 GUI,其中包含 81 個單獨的輸入(輸入)框。我也有一個提交按鈕。當我按下提交時,我想創建一系列包含單元格值、行和列等屬性的物件。下面的代碼執行此操作,但我必須復制和粘貼此代碼 81 次,每次只將變數名稱和位置調整一個(在提交函式內)。有什么方法可以創建一個回圈,可以在更改變數名稱的數字部分時將這些代碼行迭代 81 次?
class Cell:
def __init__(self,number,location):
self.number = number
self.row = (location // 9) 1
self.column = (location % 9) 1
def submit():
cell1 = Cell(c1.get(),0)
cell2 = Cell(c2.get(),1)
cell3 = Cell(c3.get(),2)
...
* .get() 方法是我在按下按鈕后從輸入框(稱為 c1、c2、c3...)中檢索數字的方式。
**location 只是一個數字(0-80),我用它來查找行和列資訊。
uj5u.com熱心網友回復:
我能想到的最簡單的方法是使用嵌套for回圈來創建小部件并將它們網格化(順便說一句row,column從 0 開始)并附加到一個串列中,以便以后可以參考它們。因此,當您按下按鈕時,它會遍歷Entry該串列中的每個s 并呼叫它們的get方法(以及prints 的值):
import tkinter as tk
def submit():
for e in entry_list:
print(e.get())
root = tk.Tk()
entry_list = []
for col in range(9):
for row in range(9):
entry = tk.Entry(root, width=2, font=('Calibri', 20))
entry.grid(row=row, column=col, sticky='news')
entry_list.append(entry)
btn = tk.Button(root, text='Submit', command=submit)
btn.grid(row=9, column=0, columnspan=9)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/398289.html
上一篇:回圈遍歷串列。安卓
