Jump to content
Fórum Script Brasil
  • 0

Python alimentar radiobutton com dados de uma tabela do MySQL.


Maxwell Araujo

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...