Ir para conteúdo
Fórum Script Brasil
  • 0

Python alimentar radiobutton com dados de uma tabela do MySQL.


Maxwell Araujo

Pergunta

Boa tarde!

Tenho esse código

from tkinter import *
from tkinter import messagebox
import mysql.connector
import self
from mysql.connector import Error
from mysql.connector.locales.eng import client_error

con = mysql.connector.connect(host='localhost',database='modelo_1',user='root',password='@@@@@@@@')
if con.is_connected():
    db_info = con.get_server_info()
    print("Conectado ao servidor MySQL versão ",db_info)
    cursor = con.cursor()
    cursor.execute("select database();")
    linha = cursor.fetchone()
    print("Conectado ao banco de dados ",linha)

try:
    consulta_sql = "select * from tipolanca"
    cursor = con.cursor ()
    cursor.execute (consulta_sql)
    linhas = cursor.fetchall()
    print("Número total de registros retornados: ",cursor.rowcount )


except Error as e:
    print ("Erro ao acessar tabela MySQL",e)

finally:
    1+1  # coloquei isso porque não sei o que eu colocaria para sair daqui
class MinhaGUI:
 def __init__(self):
  # Cria janela principal
  self.janela_principal = Tk()

  # Cria dois frames
  self.frame_cima = Frame(self.janela_principal)
  self.frame_baixo = Frame(self.janela_principal)

  # Objeto IntVar dos botões
  self.radio_valor = IntVar()
  self.radio_valor.set(1)  # Para a primeira opção ficar marcada

  # Criando os radio buttons e o label
  self.label = Label(self.frame_cima, text='Qual o melhor curso?')
  self.python = Radiobutton(self.frame_cima, text="Java",
      variable = self.radio_valor, value=1)
  self.java = Radiobutton(self.frame_cima, text='Java Progressivo',
      variable = self.radio_valor, value=2)
  self.c = Radiobutton(self.frame_cima, text='C Progressivo',
      variable = self.radio_valor, value=3)

  # Empacotando o label e os radio buttons
  self.label.pack(anchor = 'w')
  self.python.pack(anchor = 'w')
  self.java.pack(anchor = 'w')
  self.c.pack(anchor = 'w')

  # Criando os botões
  self.botao = Button(self.frame_baixo, text='Exibe', command=self.exibe)
  self.botao_sair = Button(self.frame_baixo, text='Sair', command=self.janela_principal.quit)

  # Empacotando botões
  self.botao.pack(side='left')
  self.botao_sair.pack(side='left')

  # Empacotando os frames na janela principal
  self.frame_cima.pack()
  self.frame_baixo.pack()

  # Rodando
  mainloop()

 def exibe(self):
   nome = str(self.radio_valor.get())
   messagebox.showinfo('Resposta','Você escolheu a opçao ' + nome)


gui = MinhaGUI()

 

 

Gerou a imagem abaixo: 

 

image.png

A minha idéia, é que os valores disponibilizados nas opções do RadioButton, sejam dinâmios e que venham de uma tabela do MySQL denominada tipo de lancamentos, que possui diversos valores como : "Itens de Receitas", "Itens de Depesas".

alguém pode me ajudar por gentileza?

Desde já agradeço.

4 minutos atrás, Maxwell Araujo disse:

Boa tarde!

Tenho esse código

from tkinter import *
from tkinter import messagebox
import mysql.connector
import self
from mysql.connector import Error
from mysql.connector.locales.eng import client_error

con = mysql.connector.connect(host='localhost',database='modelo_1',user='root',password='@@@@@@@@')
if con.is_connected():
    db_info = con.get_server_info()
    print("Conectado ao servidor MySQL versão ",db_info)
    cursor = con.cursor()
    cursor.execute("select database();")
    linha = cursor.fetchone()
    print("Conectado ao banco de dados ",linha)

try:
    consulta_sql = "select * from tipolanca"
    cursor = con.cursor ()
    cursor.execute (consulta_sql)
    linhas = cursor.fetchall()
    print("Número total de registros retornados: ",cursor.rowcount )


except Error as e:
    print ("Erro ao acessar tabela MySQL",e)

finally:
    1+1  # coloquei isso porque não sei o que eu colocaria para sair daqui
class MinhaGUI:
 def __init__(self):
  # Cria janela principal
  self.janela_principal = Tk()

  # Cria dois frames
  self.frame_cima = Frame(self.janela_principal)
  self.frame_baixo = Frame(self.janela_principal)

  # Objeto IntVar dos botões
  self.radio_valor = IntVar()
  self.radio_valor.set(1)  # Para a primeira opção ficar marcada

  # Criando os radio buttons e o label
  self.label = Label(self.frame_cima, text='Qual o melhor curso?')
  self.python = Radiobutton(self.frame_cima, text="Java",
      variable = self.radio_valor, value=1)
  self.java = Radiobutton(self.frame_cima, text='Java Progressivo',
      variable = self.radio_valor, value=2)
  self.c = Radiobutton(self.frame_cima, text='C Progressivo',
      variable = self.radio_valor, value=3)

  # Empacotando o label e os radio buttons
  self.label.pack(anchor = 'w')
  self.python.pack(anchor = 'w')
  self.java.pack(anchor = 'w')
  self.c.pack(anchor = 'w')

  # Criando os botões
  self.botao = Button(self.frame_baixo, text='Exibe', command=self.exibe)
  self.botao_sair = Button(self.frame_baixo, text='Sair', command=self.janela_principal.quit)

  # Empacotando botões
  self.botao.pack(side='left')
  self.botao_sair.pack(side='left')

  # Empacotando os frames na janela principal
  self.frame_cima.pack()
  self.frame_baixo.pack()

  # Rodando
  mainloop()

 def exibe(self):
   nome = str(self.radio_valor.get())
   messagebox.showinfo('Resposta','Você escolheu a opçao ' + nome)


gui = MinhaGUI()

 

 

Gerou a imagem abaixo: 

 

image.png

A minha idéia, é que os valores disponibilizados nas opções do RadioButton, sejam dinâmios e que venham de uma tabela do MySQL denominada tipo de lancamentos, que possui diversos valores como : "Itens de Receitas", "Itens de Depesas".

alguém pode me ajudar por gentileza?

Desde já agradeço.

Desculpe, outra dúvida é quanto à numeração a ser colocada no "value" da "VARIABLE".  COmo eu poderia amarrar pra fazer uma contagem de 1 até o numero final da quantidade de itens que seria alimentados automaticamente?

Mais uma vez, obrigado a quem puder me auxiliar!!!

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...