[Python] ajuda com armazenar valor de uma variável local no python

Discussão em 'Python' iniciado por Stack, Novembro 7, 2024.

  1. Stack

    Stack Membro Participativo

    Olá, bem, estou escrevendo uma aplicação usando SQLITE e Python, estava tudo correndo bem até que tive um problema que não estou conseguindo solucionar, acontece que tenho uma db da fipe, então preciso carregar 3 combobox com marca, modelo e ano, então decidi fazer da seguinte maneira, no primeiro combobox eu carrego as marcas, logo a seguir carrego a escolha com um ".get()", com a resposta desse ".get()" eu carregaria a _id desta forma:


    ('SELECT _id FROM marca WHERE nome = {}'.format (respostado.get()))</b
    ​

    Logo a seguir com essa resposta carregaria os modelos com a resposta desse select, meu problema é que a reposta do ".get()" fica dentro da minha "def PegarMarca(self, event):" e eu não estou conseguindo usar essa variável local, já tentei transforar ela em uma variável global, já tentei somar as string criando antes uma variável aberta e somando depois dentro da função, já tentei fazer de tudo que meu conhecimento é capaz más não consigo solucionar, alguém me dá uma luz, agora além de estar com o problema estou curioso também para saber a solução, vou deixar o código da aplicação (ela possui algumas partes incompletas pois eu já reescrevi mil vezes para tentar solucionar o problema, mas ela assim é melhor para vocês entenderem meu problema).

    import tkinter as tk
    import tkinter.ttk as ttk
    import sqlite3

    class Sqlite:

    def __init__(self, master):
    self.master = master
    self.db = sqlite3.connect('fdb.db')
    self.cb = ttk.Combobox(master)
    self.cb.pack()
    self.cb['values'] = self.combo_input()
    self.cb.bind("<<ComboboxSelected>>", self.PegarMarca)
    self.cc = ttk.Combobox()
    self.cc.pack()
    self.cc['values'] = self.modelo()

    def combo_input(self) -> object:
    cursor = self.db.cursor()
    cursor.execute('SELECT nome FROM marca')
    data = []

    for row in cursor.fetchall():
    data.append(row[0])
    return data

    def PegarMarca(self, event):
    print(self.cb.get())

    def modelo(self) -> object:
    cursor = self.db.cursor ()
    cursor.execute('SELECT _id FROM marca WHERE nome = "{}"')
    data = []

    for row in cursor.fetchall():
    data.append(row[0])
    return data

    root = tk.Tk()
    Sqlite(root)
    root.mainloop()

    Continue reading...

Compartilhe esta Página