#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, очень ценю помощь человека, только заметил, что я повторил дважды там, где мне нужно было только один раз, исправил и это, я все еще довольно новичок в написании кода