Кнопку Tkinter нужно создавать несколько раз в одной и той же сетке, но это не так, как мне это сделать?

#python-3.x #loops #user-interface #tkinter

Вопрос:

Я пытаюсь добавить кнопку справа от каждой строки в сетке tkinter, ниже приведен мой код, прямо сейчас я смог заставить его напечатать кнопку только в первой строке, что именно я делаю не так:

 def search_function():
        search_term = '%'   error_search_bar.get()   '%'
        error_db_cursor.execute(sql_query, (str(search_term),))
        search_window = tk.Tk()
        search_window.geometry("561x800")
        search_window.title("ITBLUE | Search Results")
        further_button = tk.Button(search_window, text='More Info', width=19, height=4)
        for i, symptoms in enumerate(error_db_cursor): 
            for index, item in enumerate(symptoms):
                e = tk.Text(search_window, width=17, height=4) 
                e.grid(row=i, column=index)
                e.insert(END, item)
                further_button.grid(row=i, column=3)
 

Вот изображение того, как это выглядит прямо сейчас:
Изображение 1

Обновление: Итак, я думаю, что понял, в чем дело, я могу загрузить одну и ту же кнопку только один раз в сетку, поэтому прямо сейчас она последовательно помещает кнопку только в последний столбец, как бы я обошел это.

Комментарии:

1. вы не должны использовать for j in range(len(symptoms)): , вместо этого используйте for index, item in enumerate(symptoms) индекс, который вернет текущий индекс и элемент текущего элемента, тогда вы можете легко использовать column=j и e.insert(END, item)

2. Привет, спасибо за совет, пошел и исправил это сейчас, все еще получая тот же результат

3. Обновил код, чтобы он соответствовал исправлению @Matiis

4. тогда вам не нужна эта строка: search_result = symptoms[index] не так ли? и да, это не решит проблему, потому что я только что показал, как писать код более эффективно. теперь ваша проблема в том, что x переназначается каждая итерация, место x = 1 сразу после i = 0

5. Спасибо @Matiis, очень ценю помощь человека, только заметил, что я повторил дважды там, где мне нужно было только один раз, исправил и это, я все еще довольно новичок в написании кода