這個腳本可以很好地做我想做的事,但我認為可能有一個更直接的替代方案,我錯過了。
我所擁有的只是一個 tkinter 復選框,當按下該復選框時,運行此函式將所有資訊從第 0 列的輸入框行映射到第 1 列的輸入框。目前,這是腳本:
def update_company_new():
company = str()
for child in frame.winfo_children():
if child.grid_info()["column"] == 0:
company = child.get()
if child.grid_info()["column"] == 1:
child.insert(0, company)
有沒有更直接的方法來做到這一點?這似乎通常可以通過簡單的串列理解來完成,但我找不到有關其他選項的足夠詳細資訊winfo_children(),grid_info()這使其適用于 tkintergrid參考。
uj5u.com熱心網友回復:
可以使用串列理解來完成:
[frame.grid_slaves(row=w.grid_info()['row'], column=1)[0].insert(0, w.get()) for w in frame.grid_slaves(column=0)]
但是對于初學者來說很難理解,并且它創建了一個無用的None.
最好使用簡單的 for 回圈:
for w in frame.grid_slaves(column=0):
row = w.grid_info['row']
peer = frame.grid_slaves(row=row, column=1)
# check if there is Entry in column 1
if peer:
peer[0].insert(0, w.get())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/370478.html
上一篇:提示條目小部件tkinter
下一篇:動態重命名tkinter視窗
