我有一個按鈕和一個功能,每次單擊它時都會在換行符中創建 5 個輸入框
def __init__(self, master):
[...]
self.rows_list = 2
self.new_button = ttk.Button(self.tab1, text='Add', command=self.new_window).grid(column=5, row=0)
def new_window(self):
rows = self.rows_list
labels = 5
for x in range(labels):
ttk.Entry(self.tab1).grid(column=int(x), row=rows)
self.rows_list = 1
我正在努力使洗掉按鈕洗掉最后一行。嘗試了多種“互聯網解決方案”,但沒有一個有幫助。
uj5u.com熱心網友回復:
對于您的情況,由于您必須self.row_list用作創建這些新條目的下一行,因此您可以使用此變數來獲取最后一行中的小部件并銷毀它們:
def __init__(self, master):
...
self.rows_list = 2
ttk.Button(self.tab1, text='Add', command=self.new_window).grid(column=5, row=0)
ttk.Button(self.tab1, text='Remove', command=self.remove_row).grid(column=6, row=0)
...
def remove_row(self):
if self.rows_list > 2:
# get widgets in last row
widgets = self.tab1.grid_slaves(row=self.rows_list-1)
# and destroy them
for w in widgets:
w.destroy()
# update self.rows_list
self.rows_list -= 1
請注意,此解決方案基于發布的代碼,如果這些條目的同一行中有其他小部件,則可能無法正常作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/419301.html
標籤:
