Я динамически заполняю текст кнопки в tkinter из значений в базе данных mysql.
Отдельные слова отображаются хорошо, но строки с более чем одним словом отображаются с фигурными скобками вокруг них. Я не уверен, что это потому, что они рассматриваются как кортеж или какой-либо другой нестроковый тип данных.
У меня такое ощущение, что Mysql хранит данные, но не уверен, как их обрабатывать на входе или выходе, чтобы избежать этого.
Любая помощь будет оценена.
Вот запрос на выборку в Mysql. Данные таблицы
Вот оператор выбора:
def getChannelName(channel):
mydb = mysql.connector.connect(
host=DBHost,
user=Uname,
passwd=Pword,
database=Dbase
)
mycursor = mydb.cursor(buffered=True)
sql = "SELECT InputName FROM tbl_input WHERE tbl_input.InputChannel = '%s'" % (channel)
mycursor.execute(sql)
r = mycursor.fetchone()
mycursor.close()
del mycursor
return r
РЕДАКТИРОВАТЬ: я добавил print (r) непосредственно перед "return r", чтобы показать значения из БД.
![SELECT query result](https://i.stack.imgur.com/iN1CS.png)
Здесь вызывается запрос на выборку:
def initChannelNames(activeInputs):
# Read all the ADC channel names in a list
inputs = [0]*activeInputs
for index in range(len(inputs)):
inputs[index] = getChannelName(index)
return inputs
Здесь я использую данные. Я создаю кнопки динамически и использую запрашиваемые данные в качестве текста кнопки.
inputs = initChannelNames(activeInputs)
#set the selectors
for index in range(len(inputs)):
Button(selectorStackContainer, text=inputs[index], image=ledImg, width=Button_w, height=Button_h, command=callback, font=("Courier", 11), bg='grey', fg='black', compound = "left", anchor="w").grid(row=index, sticky="w")
И, наконец, вот что отображается на кнопках: