Я работаю над проектом python gui и хочу заполнить свой ComboBox данными Mysql

#python #mysql #tkinter

#python #mysql #tkinter

Вопрос:

Вот мой код. Я использую метод levelcombobox для заполнения моего combobox

 from tkinter.ttk import *
from tkinter import *
from tkinter.font import Font
import mysql.connector
mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password="root",
    database="efs"
)
e3 = Combobox(frame2, font=bFont, width=18).grid(row=3, column=2)

Select="select distinct(level) from table1"
mycursor.execute(Select)
result1=mycursor.fetchall()
e3["values"] = result1
  

Я новичок в графическом интерфейсе python. Поправьте меня, если я мог бы оптимизировать этот код. Заранее спасибо.

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

1. Попробуйте перебрать result1 и сказать e3['values'] = result , где результатом является каждое значение в result1

2. ошибка: TypeError: индексы списка должны быть целыми числами или фрагментами, а не str

3. e3 это ведь не список, верно?

Ответ №1:

просто добавьте

 from tkinter import ttk
  

затем выполните следующие действия

 Select="select distinct(level) from table1"
mycursor.execute(Select)
result1=mycursor.fetchall() #a list of tuples
  

Добавьте ttk перед Combobox

 e3 = ttk.Combobox(frame2, value=result1).grid(row=3, column=2) #populate