Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Created on 13/11/2012
- @author: phiron
- '''
- from PyQt4.QtCore import SIGNAL, Qt
- from PyQt4.QtGui import QMainWindow, QTableWidgetItem, QFileDialog, QTextDocument, QPrintPreviewDialog, QProgressDialog
- from interfaces.ui_formJogos import Ui_JanelaPrincipal
- from classes.Jogo import Jogo
- class FormJogos(QMainWindow, Ui_JanelaPrincipal):
- def __init__(self, parent = None):
- super(FormJogos, self).__init__(parent)
- self.setupUi(self)
- self.conectar()
- self.jogo = None
- self.tipo_jogo = "Genérico"
- def conectar(self):
- acoes = (self.actionDupla_Sena, self.actionLotomania, self.actionMega_Sena,
- self.actionQuina)
- for acao in acoes:
- self.connect(acao, SIGNAL("triggered()"), self.acaoClick)
- self.connect(self.btnJogar, SIGNAL("clicked()"), self.gerarJogos)
- self.connect(self.actionSalvar, SIGNAL('triggered()'), self.salvarJogoEmTexto)
- self.connect(self.actionImprimir, SIGNAL('triggered()'), self.imprimir)
- def gerarJogos(self):
- jg = Jogo(self.txtDezenas.text(), self.txtQtdEscolhas.text(), self.txtQtdJogos.text())
- self.jogo = jg
- self.popularTabela(self.jogo.jogos)
- def popularTabela(self, jgs):
- '''
- popula a tabela com o jogo dado
- '''
- self.tblJogos.setColumnCount(int(self.txtDezenas.text()))
- self.tblJogos.setRowCount(len(jgs))
- progresso = QProgressDialog("Preenchendo a Tabela...", "Cancelar", 0, len(jgs), self)
- progresso.setWindowTitle('Adicionando {0} registros à Tabela'.format(len(jgs)))
- progresso.setWindowModality(Qt.WindowModal)
- x = 0
- for jogo in jgs:
- y = 0
- for dezena in jogo:
- numero = QTableWidgetItem('%s' % dezena)
- self.tblJogos.setItem(x, y, numero)
- y += 1
- x += 1
- progresso.setValue(x)
- def acaoClick(self):
- '''
- Quando aciono alguma action de jogos no menu arquivos eu as conecto com essa funcao
- '''
- self.limparForm()
- dic_acao = {
- self.actionDupla_Sena:(6, 50, "Dupla Sena"),
- self.actionLotomania:(15, 80, "Lotomania"),
- self.actionMega_Sena:(6, 60, "Mega Sena"),
- self.actionQuina:(5, 90, "Quina"),
- }
- acao = dic_acao[self.sender()]
- self.popularTextos(acao[0], acao[1], acao[2])
- self.txtQtdJogos.setFocus()
- self.txtQtdJogos.setCursorPosition(0)
- return None
- def popularTextos(self, dezenas, qtd_escolhas, tipo_jogo = "Genérico"):
- '''
- popula os textos com os valores dados
- '''
- self.txtDezenas.setText(str(dezenas))
- self.txtQtdEscolhas.setText(str(qtd_escolhas))
- self.tipo_jogo = tipo_jogo
- return None
- def salvarJogoEmTexto(self):
- '''
- pego o jogo e salvo em formato texto no sistema de arquivos...
- '''
- if self.jogo == None:
- return None
- import os
- path = os.path.abspath(__file__)
- dir_path = os.path.dirname(path)#defino o caminho do arquivo
- dialogo = QFileDialog.getSaveFileName(self, "Selecione o arquivo para salvar o jogo...", dir_path, "Arquivos TXT (*.txt *.TXT *.Txt)")
- self.jogo.get_texto(dialogo)
- self.statusbar.showMessage("Arquivo salvo com sucesso...", 5000)
- return None
- def imprimir(self):
- '''
- Imprime a tabela do jogo
- '''
- if self.jogo == None:
- return None
- texto = QTextDocument()
- texto.setDocumentMargin(0.8)
- texto.setPlainText(self.jogo.retornaHtml(self.tipo_jogo))
- texto.setHtml(texto.toPlainText())
- dialogo = QPrintPreviewDialog()
- self.connect(dialogo, SIGNAL("paintRequested (QPrinter *)"), texto.print_)
- dialogo.exec_()
- return None
- def limparForm(self):
- '''
- limpo os itens do formulario
- '''
- self.jogo = None
- self.tipo_jogo = "Genérico"
- ls = [self.txtDezenas, self.txtQtdEscolhas, self.txtQtdJogos, self.tblJogos]
- for wdg in ls:
- wdg.clear()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement