Visual – RadioButton – Grid, Sticky, Columnspan, Rowspan – Python – Linux

Publicado: 14 de março de 2014 em Python

RadioButton

Em computação, um botão de opção ou botão de rádio (Radiobutton) é um elemento de interface gráfica (isto é um componente widget) com dois estados: selecionado (ativado) e não-selecionado (desativado), quando o usuário pressiona um botão do mouse ou uma tecla como Espaço. Botões de opção são usados num grupo para apresentar um conjunto limitado de escolhas (duas ou mais) que são mutuamente exclusivas. Deste maneira, quando o usuário seleciona um outro botão no mesmo conjunto, o outro botão já selecionado torna-se automaticamente desativado.

Grid

É o gerente de geometria de grade coloca os widgets em uma tabela bi-dimensional. O Widget mestre é dividido em um número de linhas e colunas, e cada “célula” na tabela resultante pode conter um widget.

Utilizar o gerenciador de grade é fácil. Basta criar os widgets, e usar o método grade para dizer ao gerente em que linha e coluna quer os colocar. Você não tem que especificar o tamanho da grade de antemão, o gerente determina automaticamente que a partir dos widgets na mesma. Linhas e colunas vazias são ignoradas.

Sticky

Os widgets são centrados em suas células. Você pode usar a opção Sticky para mudar isso, esta opção tem um ou mais valores do conjunto N, S, E, W. Para alinhar os rótulos para a borda esquerda, direita, cima e baixo.

ColumnSpan e  Rowspan

Os widgets podem abranger mais de um célula. A opção ColumnSpan é usada para permitir que um Widget alcance mais de uma coluna, e a opção rowspan deixa abranger mais de uma linha.

radiobutton

Exemplo:

Neste exemplo criamos um grupo de botões de radio que efetua as 4 operações básicas da matemática, usando o evento de item e a verificação do seu estado. Você deve obter um programa Linux como na imagem acima.

Python

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# Radiobutton.py

# importa modulo
from Tkinter import *

# Cria formulario
formulario = Tk()
formulario.title = "Desenvolvimento Aberto"

# Evento CB on click
def evento1():
    if (r1.get() == 1):
         texto.insert(END,"Somar:\n")

def evento2():
    if (r1.get() == 2):
         texto.insert(END,"Subtrair:\n")

def evento3():
    if (r1.get() == 3):
         texto.insert(END,"Multiplicar:\n")

def evento4():
    if (r1.get() == 4):
         texto.insert(END,"Dividir:\n")

# Evento do botão
def callback():
    if (r1.get() == 1):
        n1 = float(campo1.get())
        n2 = float(campo2.get())
        total =  n1 + n2
        texto.insert(END, campo1.get() + " + " + campo2.get() + " = " + str(total) + "\n")

    if (r1.get() == 2):
        n1 = float(campo1.get())
        n2 = float(campo2.get())
        total =  n1 - n2
        texto.insert(END, campo1.get() + " - " + campo2.get() + " = " + str(total) + "\n")

    if (r1.get() == 3):
        n1 = float(campo1.get())
        n2 = float(campo2.get())
        total =  n1 * n2
        texto.insert(END, campo1.get() + " * " + campo2.get() + " = " + str(total) + "\n")

    if (r1.get() == 4):
        n1 = float(campo1.get())
        n2 = float(campo2.get())
        total =  n1 / n2
        texto.insert(END, campo1.get() + " / " + campo2.get() + " = " + str(total) + "\n")

# Define variavel para status do RadioButton
r1 = IntVar()

# Cria um novo label
rotulo = Label(formulario, text = "Escolha uma Opcao")

# Identa linhas usando o caracter continuacao de linua

# Cria os Componentes
opc1 = Radiobutton(formulario, text = "Somar", variable = r1, value =1, command = evento1)

opc2 = Radiobutton(formulario, text = "Subtrair", variable = r1, value = 2, command = evento2)

opc3 = Radiobutton(formulario, text = "Multiplicar", variable = r1, value =3, command = evento3)

opc4 = Radiobutton(formulario, text = "Dividir", variable = r1, value = 4, command = evento4)

rotulo1 = Label(formulario, text = "Numero 1:")

rotulo2 = Label(formulario, text = "Numero 2:")

campo1 = Entry(formulario)

campo2 = Entry(formulario)

botao = Button(formulario, text="Ok", command = callback)
texto = Text(formulario, height = 10, width = 50)

# Adiciona Componentes no Grid
rotulo.grid(sticky=W)

opc1.grid(row=1, sticky=W)
opc2.grid(row=2, sticky=W)
opc3.grid(row=3, sticky=W)
opc4.grid(row=4, sticky=W)

rotulo1.grid(row=5,sticky=W)
campo1.grid(row=5, columnspan=2)
rotulo2.grid(row=6,sticky=W)
campo2.grid(row=6, columnspan =2)

botao.grid(row=6, columnspan= 3, sticky=E)

texto.grid(row=7)

# Roda o loop principal do tcl
mainloop()
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s