Jump to content

Python alimentar radiobutton com dados de uma tabela do MySQL.


maxwell

Postagens Recomendadas

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".

Alguem pode me ajudar por gentileza?

Desde já agradeço.

Link to comment
Compartilhe em outros sites

9 minutos atrás, maxwell 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".

Alguem 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 to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...