segunda-feira, 9 de março de 2015

Usando Tkinter no Janelas

.


#*********************************************************************
# Autor:        ubiratã uaatsim itza I.
# Data:         10/03/2014
# Hora:         17:40:06
#*********************************************************************
# Arquivo:      padrao.py
#
# Descrição:   O arquivo padrao.py
#
#               Métodos:
#
# uso:          from padrao import Padrao
#               p = Padrao
#               p.
#
#*********************************************************************
#
#*********************************************************************
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#*********************************************************************
#
#*********************************************************************
import random
import tkinter
from tkinter import ttk
from tkinter import messagebox
#from tkinter import Combobox
import sys, os
#*********************************************************************
#
#*********************************************************************
class Padrao(object):
    def __init__(self):
        self.v_padrao = 'p'
        p = Padrao

        self.tela1 = tkinter.Tk()
        self.style = ttk.Style()
        available_themes = self.style.theme_names()
        random_theme = random.choice(available_themes)
        self.style.theme_use(random_theme)
        self.tela1.title(random_theme)

        self.telax = tkinter.Tk()
        self.telax.title('tanzinho')
        frmx = ttk.Frame(self.telax)
        frmx.pack(expand=True, fill='both')
        self.b3 = ttk.Button(frmx, text='Tanzinho')
        self.b3['command'] = self.bt3telaxMuda
        self.b3.pack(pady=2)

        frm = ttk.Frame(self.tela1)
        frm.pack(expand=True, fill='both')
    # create a Combobox with themes to choose from
        self.combo = ttk.Combobox(frm, values=available_themes)
        self.combo.pack(padx=72, pady=10)
        self.combo.bind('<Return>', self.bt1muda_estilo)

     #   ttk.Separator()

        self.cbvalor = tkinter.StringVar()
        self.comboopcao = ttk.Combobox(frm, textvariable=self.cbvalor, state='readonly')
        self.comboopcao['values']=('grupos','pessoas','experimento','máquina')
        self.comboopcao.current(2)
        self.comboopcao.pack(padx=72, pady=10)
        self.comboopcao.bind('<<ComboboxSelected>>', self.cbMudanca)
       
    # make a Button to change the style
        self.b1 = ttk.Button(frm, text='Aceitar')
        self.b1['command'] = self.bt1muda_estilo
        self.b1.pack(pady=2)

        self.combo.bind('<Return>', self.bt2tela3)
        self.b2 = ttk.Button(frm, text='Opção')
        self.b2['command'] = self.bt2tela3
        self.b2.pack(pady=2)

        self.n=tkinter.StringVar()
        self.rotulonome = tkinter.Label(self.tela1, text='Nome', bg='yellow')
        self.rotulonome.pack(pady=10, padx=10)
        self.N1=tkinter.Entry(self.tela1, width=25, textvariable=self.n)
        self.N1.bind("<Return>", self.entradaNome)
     #   self.n.set("Entre com o seu nome: ")
        self.N1.pack(pady=10, padx=10)

        self.s=tkinter.StringVar()
        self.rotulosenha = tkinter.Label(self.tela1, text='Senha', bg='yellow')
        self.rotulosenha.pack(pady=10, padx=10)
        self.S1=tkinter.Entry(self.tela1, width=25, textvariable=self.s)
        self.S1.bind("<Return>", self.entradaSenha)
     #   self.s.set("Entre com a sua senha: ")
        self.S1.pack(pady=10, padx=10)

        self.spinval = tkinter.IntVar()
        self.wspin = tkinter.Spinbox(self.tela1, from_=0, to=10, textvariable=self.spinval, command=self.spinRetorno)
        self.wspin.pack(pady=10, padx=10)

        print('Atributos instanciados - Classe Padrão')
#*********************************************************************
    def versao():
        '''27/02/2015
        '''
        print('Classe Padrão - versao 1.0')

    def tela2():
        '''
        '''
        tela2 = tkinter.Tk()
        l = tkinter.Label(tela2, text="Ola, mondo!\nTkinter em ação!\nSee http://pythonce.sf.net.")
        b = tkinter.Button(tela2, text='Quit', command=tela2.destroy)
        l.pack()
        b.pack()
        print('tela 2')

    def bt1muda_estilo(self, event=None):
        """Muda a configuração do estilo com base no conteudo selecinado no Combobox"""
        conteudo = self.combo.get()
       
        try:
            self.style.theme_use(conteudo)
        except tkinter.TclError as err:
            messagebox.showerror('Error', err)
        else:
            self.tela1.title('Tela 1: '+conteudo)
        self.b1['text']='aceito'

    def bt2tela3(self, event=None):
        '''
        '''
        self.tela1.title('Tela 3')
        i = messagebox.askyesnocancel('Pergunta','Você vai mesmo fazer isto?\n\nContinuar?')
        if i == True:
            self.b2['text']='sim'
            print('Tela 3: sim')
        elif i == False:
            self.b2['text']='não'
            print('Tela 3: não')
        elif i == None:
            self.b2['text']='sai'
            print('Tela 3: saiu')
    #    self.b2.config(state='disabled')
    #    self.b2['text']='Escolhido'

    def bt3telaxMuda(self, event=None):
        '''
        '''
     #   self.telax.title('xxx')
        self.b3['text']='xx'
        print('Tela x')
#*********************************************************************
    def entradaNome(self, event=None):
        '''Entrada de informações.
        '''
        print(self.n.get())
       
    def entradaSenha(self, event=None):
        '''Entrada de informações.
        '''
        print(self.s.get())

    def spinRetorno(self):
        '''Quantidade de pessoas que se deseja cadastrar.
        '''
        print(self.spinval.get())

    def cbMudanca(self, event):
        '''Combobox
        '''
        cbo = self.comboopcao.get()
        print(self.comboopcao.current(),'cbo: ', cbo)
#*********************************************************************
if __name__ == '__main__':
    Padrao()
    print ('Classe instanciada - Padrao!')
#*********************************************************************



.

Nenhum comentário:

Postar um comentário