Как преобразовать Int в IntVar в модуле Python Tkinter с использованием SQLite / Pandas

#python #pandas #sqlite #tkinter

#python #pandas #sqlite #tkinter

Вопрос:

Итак, я создаю project macro tracker с использованием модуля Python Gui Tkinter. Сейчас я пытаюсь получить дополнительные данные из базы данных SQLite. Извлеченные данные имеют тип Int, и мне нужно преобразовать это в IntVar, чтобы я мог использовать его в качестве текстовой переменной в ярлыке Tkinter. Метод Label(textvariable =) требовал, чтобы в этом случае это был IntVar.

Итак, чтобы подвести итог, мне нужно преобразовать переменную Int в переменную IntVar

Любая помощь была бы отличной,

 def display_daily_macros():

    daily = sqlite3.connect('daily.db')
    data = pandas.read_sql_query("Select * from day", daily)
    data_time = data[data['sqltime'] == "2020-09-11"]
    all_info = data_time.sum()
    protein = all_info['Protein']
    print(type(protein))
  

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

1. я полагаю, вы могли бы сделать что-то вроде IntVar().set(protien)

2. Привет, был бы признателен, если бы вы могли отметить ответ здесь

Ответ №1:

Вы могли бы сделать что-то вроде этого,

 from tkinter import *

root = Tk()

protien = '3' #this could be your value from the database
h = IntVar(value=protien) #declaring an IntVar and setting it to protien

e = Entry(root,textvariable=h) #assigning it to the entry widget
e.pack()

root.mainloop()
  

Здесь вы определяете IntVar() , а затем используете set() метод для его создания protien .

Надеюсь, это то, что вы ищете.

Приветствия

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

1. Спасибо за быстрый ответ. Я пробовал это ранее, и он возвращается с «AttributeError: объект ‘NoneType’ не имеет атрибута ‘_root'» есть идеи?

2. @Thaskor не могли бы вы показать код? Сложно сказать без соответствующего кода

3. Вы можете инициализировать IntVar во время создания: h = IntVar(value=protien)