.
#**********************************************************************
# Autor: ubiratã uaatsim itza I.
# Data: 15/03/2015
# Hora: 21:30:00
#*********************************************************************
# Arquivo: telaPessoas2.py
#
# Descrição: O arquivo telaPessoas2.py
#
# Métodos: .
#
# Atributos: .
#
# uso: F5
# from telaPessoas2 import TelaPessoas2
# t = TelaPessoas2
#
# help(t) <-- docstring da classe.
# help(t.TelaPessoas2()) <-- docstring do metodo.
#
#*********************************************************************
#
#*********************************************************************
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#*********************************************************************
#
try:
# from tkinter import *
import tkinter
from tkinter import ttk
from tkinter import messagebox
from tkinter import StringVar
# import sys, os
import sqlite3
import datetime
print('Classes instanciadas com sucesso!')
except ImportError:
print('Erro na importação das classes.')
#*********************************************************************
class TelaPessoas2():
def __init__(self):
'''Teste das funçoes de IHM.
'''
self.v_testeIhm = 'ti'
self.comprimentoroot = 400
self.larguraroot = 150
self.tela1 = tkinter.Tk()
# self.tela1.geometry('700x150')
self.tela1.title("Tela Pessoas 2")
self.frames = ttk.Frame(self.tela1, padding=(3,3,10,10))
self.telaprincipal = ttk.Frame(self.frames, borderwidth=5, relief="sunken")#, width=200, height=100)#, title='ola')
self.style = ttk.Style()
self.style.configure("BW.TLabel", foreground="black", background="white")
self.ventranome = tkinter.StringVar()
self.ventranome.set('sem nome')
self.ventrasenha = tkinter.StringVar()
self.ventrasenha.set('sem senha')
self.varlblp = tkinter.StringVar()
self.namelbl = ttk.Label(self.telaprincipal, text="Pessoa x", style="BW.TLabel", textvariable=self.varlblp)#, bg='yellow')
self.entraname = tkinter.Entry(self.telaprincipal)#, textvariable=self.ventranome)
self.entraname.config(textvariable=self.ventranome)
self.varlbls = tkinter.StringVar()
self.senhalbl = ttk.Label(self.telaprincipal, text="Senha", style="BW.TLabel", textvariable=self.varlbls)#, bg='yellow')
self.entrasenha = tkinter.Entry(self.telaprincipal, textvariable=self.ventrasenha, show='*')
self.btconectar = ttk.Button(self.telaprincipal, text="Conectar")
self.vqtdetipopessoa = tkinter.StringVar()
self.vqtdetipopessoa.set("4")
self.opc1 = ttk.Radiobutton(self.telaprincipal, text='Um', variable=self.vqtdetipopessoa, value='1', command=self.qtdepessoas)
self.opc2 = ttk.Radiobutton(self.telaprincipal, text='Dois', variable=self.vqtdetipopessoa, value='2', command=self.qtdepessoas)
self.opc3 = ttk.Radiobutton(self.telaprincipal, text='Tres', variable=self.vqtdetipopessoa, value='3', command=self.qtdepessoas)
self.opc4 = ttk.Radiobutton(self.telaprincipal, text='Quatro', variable=self.vqtdetipopessoa, value='4', command=self.qtdepessoas)
self.vtipopessoa = tkinter.StringVar()
self.vtipopessoa.set("uti")
###indicatoron=0 # faz menu
self.opclbl = ttk.Label(self.telaprincipal, text="Pessoas", style="BW.TLabel")#, bg='yellow')
self.opcadm = ttk.Radiobutton(self.telaprincipal, text='Administrador', variable=self.vtipopessoa, value='adm', command=self.tipoPessoa)
self.opctec = ttk.Radiobutton(self.telaprincipal, text='Tecnico', variable=self.vtipopessoa, value='tec', command=self.tipoPessoa)
self.opcres = ttk.Radiobutton(self.telaprincipal, text='Responsavel', variable=self.vtipopessoa, value='res', command=self.tipoPessoa)
self.opcuti = ttk.Radiobutton(self.telaprincipal, text='Utilizador', variable=self.vtipopessoa, value='uti', command=self.tipoPessoa)
self.wspinlbl = ttk.Label(self.telaprincipal, text="Quantidade", style="BW.TLabel")#, bg='yellow')
self.telaprincipal.grid(column=0, row=0)#, sticky=(N, S, E, W))
self.frames.grid(column=0, row=0, columnspan=3, rowspan=2)#, sticky=(N, S, E, W))
self.namelbl.grid(column=3, row=0, columnspan=2, padx=5, pady=5)#, sticky=(N, W))
self.entraname.grid(column=3, row=1, columnspan=2, pady=5, padx=5)#, sticky=(N, E, W))
self.senhalbl.grid(column=3, row=2, columnspan=2, padx=5, pady=5)#, sticky=(N, W))
self.entrasenha.grid(column=3, row=3, columnspan=2, pady=5, padx=5)#, sticky=(N, E, W))
self.opclbl.grid(column=0, row=0)
self.opcadm.grid(column=0, row=1)
self.opctec.grid(column=1, row=1)
self.opcres.grid(column=0, row=2)
self.opcuti.grid(column=1, row=2)
self.opc1.grid(column=0, row=4)
self.opc2.grid(column=1, row=4)
self.opc3.grid(column=2, row=4)
self.opc4.grid(column=3, row=4)
self.btconectar.grid(column=4, row=4)
self.wspinlbl.grid(column=0, row=3)
self.btconectar.bind("<Button-1>", self.fbtConectar)
self.tela1.columnconfigure(0, weight=1)
self.tela1.rowconfigure(0, weight=1)
self.telaprincipal.columnconfigure(0, weight=3)
self.telaprincipal.columnconfigure(1, weight=3)
self.telaprincipal.columnconfigure(2, weight=3)
self.telaprincipal.columnconfigure(3, weight=1)
self.telaprincipal.columnconfigure(4, weight=1)
self.telaprincipal.columnconfigure(5, weight=4)
self.telaprincipal.rowconfigure(1, weight=1)
print('Atributos instanciados - Classe TelaPessoas2.')
#------------------------------------------------------------------------------------------
def versaoTelaPessoas2():
"""Exibe a versão da classe TelaPessoas2.
"""
messagebox.showinfo("Informaçao", "TelaPessoas2 - Versão 1.2")
print('TelaPessoas2 Versão 1.2')
def fbtConectar(self, event):
'''Conecta ao sistema.
'''
n = self.ventranome.get()
if n == 'sem nome':
messagebox.showinfo('Conexao','Insira um nome válido.')
else:
self.ventranome.set(n)
s = self.ventrasenha.get()
if s == 'sem senha':
messagebox.showinfo('Conexao','Insira um senha válido.')
else:
self.ventrasenha.set(s)
if n == 'sem nome' or s == 'sem senha':
messagebox.showinfo('Conexao','Insira um nome e uma senha válidos.')
else:
i = messagebox.askyesnocancel('Conexao','Utilizador e senha registrados.\n\nContinuar?')
if i == True:
v = self.vqtdetipopessoa.get()
if v == '0':
self.btconectar.config(state=tkinter.DISABLED)
messagebox.showinfo("Informaçao", "Conexão finalizada com sucesso!")
print('Tela %s: sim com 0 pessoa.' % v)
else:
'''Atualiza os rótulos do nome e da senha.
'''
p = self.ventranome.get()
s = self.ventrasenha.get()
n = self.vqtdetipopessoa.get()
t = self.vtipopessoa.get()
self.tela1.title('Conectado --> ' + t.upper() + n.upper() + ': ' + v + p + s)
self.ventranome.set('sem nome')
self.ventrasenha.set('sem senha')
vv = int(v)
vv = vv - 1
self.vqtdetipopessoa.set(str(vv))
self.varlblp.set(p.upper() + ' ' + str(vv))
self.varlbls.set('Senha ' + str(vv))
print('Tela %s: sim.' % v)
TelaPessoas2.persistencia2_criainsere('bd0', p, s, t)# arquivo, pessoa, senha, tipo
TelaPessoas2.persistencia2_mostra('bd0', 'tan')
elif i == False:
print('Tela 3: não.')
elif i == None:
print('Tela 3: cancelado.')
print('Funçao do botao conectar.')
def tipoPessoa(self):
'''Radiobutton 1, 2, 3 e 4.
'''
p = self.vtipopessoa.get()
v = self.vqtdetipopessoa.get()
self.varlblp.set(p.upper() + ' ' + v)
self.varlbls.set('Senha ' + v)
if p == 'adm':
print('administrador')
elif p == 'tec':
print('tecnico')
elif p == 'res':
print('responsavel')
elif p == 'uti':
print('utilizador')
else:
print('nada')
self.btconectar.config(state=tkinter.NORMAL)
def qtdepessoas(self):
'''Radiobutton 1, 2, 3 e 4.
'''
v = self.vqtdetipopessoa.get()
p = self.vtipopessoa.get()
self.varlblp.set(p.upper() + ': ' + v)
self.varlbls.set('Senha: ' + v)
if v == '1':
v_qtde = 1
print('%s pessoa' %v_qtde)
elif v == '2':
v_qtde = 2
print('%s pessoas' %v_qtde)
elif v == '3':
v_qtde = 3
print('%s pessoas' %v_qtde)
elif v == '4':
v_qtde = 4
print('%s pessoas' %v_qtde)
else:
v_qtde = 0
messagebox.showinfo('Conexao','Concluído com sucesso!')
print('%s pessoa' %v_qtde)
self.btconectar.config(state=tkinter.NORMAL)
def persistencia2_criainsere(vnomearquivo, vnomepessoa, vsenhapessoa, vtipopessoa):#, _dataconexao):
'''tipos: texto, texto, integer, real, data
None type is converted to NULL
int type is converted to INTEGER
float type is converted to REAL
str type is converted to TEXT
bytes type is converted to BLOB
'''
try: # db = sqlite3.connect(':memory:')
_conexao = sqlite3.connect(vnomearquivo)# example.db ou :memory cria no RAM.
_cursor = _conexao.cursor()
_cursor.execute("CREATE TABLE tabpessoas(ID INTEGER PRIMARY KEY NOT NULL, Nomepessoa TEXT, Senhapessoa TEXT, Tipopessoa TEXT)") # Cria Tabela. , dataconexao data
_cursor.execute("INSERT INTO tabpessoas(ID, Nomepessoa, Senhapessoa, Tipopessoa) VALUES(2, ?, ?, ?)", (vnomepessoa, vsenhapessoa, vtipopessoa))# Insere os dados na coluna. , _dataconexao
_conexao.commit()# Salva as alteraçoes.
_cursor.execute('SELECT SQLITE_VERSION()')
vdata = _cursor.fetchone()
print ("SQLite version: %s" % vdata)
_cursor.close()
_conexao.close()
print('Tabela criada com sucesso: ', vnomearquivo)
print('Tabela fechada com sucesso: ', vnomearquivo)
except sqlite3.Error as e:
_cursor.close()
_conexao.close()# Desconecta
print ('Um erro ocorreu:', e.args[0])
def persistencia2_mostra(vnomearquivo, _busca):
'''p.persistencia2_mostra('bd0.db', 'nomepessoa')
'''
try:
_conexao = sqlite3.connect(vnomearquivo)#example.db ou :memory cria no RAM.
_cursor = _conexao.cursor()
# print(_cursor.fetchall()) cursor.fetchmany(2)
for row in _cursor.execute('SELECT * FROM tabpessoas'):#### ORDER BY ID'):
print(row)
# _cursor.execute('SELECT * FROM tabpessoas WHERE trans = ?', _busca)
# print(_cursor.fetchone())
# _cursor.execute("insert into tabpessoas(Nomepessoa, Senhapessoa, Tipopessoa) values (?, ?, ?)", (vnomepessoa, vsenhapessoa, vtipopessoa))
_cursor.execute("select Nomepessoa, Senhapessoa, Tipopessoa from tabpessoas")
row = _cursor.fetchone()
print(row[0])
print(row[1])
print(row[2])
# print(Nomepessoa, "=>", row[0], type(row[0]))
# print(Senhapessoa, "=>", row[1], type(row[1]))
# print(Tipopessoa, "=>", row[1], type(row[1]))
#
_cursor.close()
_conexao.close()# Desconecta
print('Desconectado com sucesso - 1')
except sqlite3.Error as e:
print ('Um erro ocorreu:'), e.args[0]
_cursor.close()
_conexao.close()# Desconecta
print('Desconectado com erro')
#------------------------------------------------------------------------------------------
if __name__ == '__main__':
TelaPessoas2()
print ('Classe instanciada - TelaPessoas2!')
#************************************************************************
.
Nenhum comentário:
Postar um comentário