-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#25 Novo repositório limpo e configurado
Add tudo novamente cocm o gitignore ativado e removendo o executável por hora.
- Loading branch information
Showing
29 changed files
with
1,712 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
## Ignorando todos os arquivos de photoshop | ||
*.psd | ||
|
||
## Ignorando arquivos de cache + pasta vscode | ||
_main/__pycache__/* | ||
_main/.vscode/* | ||
|
||
## Ignorando outro executável | ||
arquivos/outras-versoes/_outros/Testes/ | ||
|
||
## Ignorando outras versões da documentação | ||
arquivos/_documentacao/_caso-de-uso/_outros/* | ||
arquivos/_documentacao/_cenário-de-negócio/_outros/* | ||
arquivos/_documentacao/_diagrama-de-classe/_outros/* | ||
arquivos/_documentacao/_tutorial_outros/* | ||
arquivos/_documentacao/_vídeo/_edição/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
###### Gui Reis - guisreis25@gmail.com ###### COPYRIGHT © 2020 KINGS - All rights reserved | ||
|
||
# -*- coding: utf-8 -*- | ||
|
||
|
||
## Classe responsável pela criação da interface gráfica | ||
|
||
## Bibliotecas necessárias: | ||
# Arquivo local | ||
import mudanca_base as md | ||
|
||
# GUI | ||
from PyQt5 import QtCore, QtWidgets | ||
from PyQt5.QtGui import QFont, QIcon | ||
|
||
|
||
class Gui(QtWidgets.QMainWindow): | ||
## Construtor: define a super classe e também a janela principal | ||
def __init__(self): | ||
super(Gui, self).__init__() | ||
|
||
self.setWindowIcon(QIcon('images/icon.png')) # Define o ícone | ||
self.setWindowTitle(" ") # Define o título (título vazio) | ||
self.setFixedSize(180, 290) # Sempre vai ser esse tamanho | ||
|
||
self.gui_Ui() # Chama o método de construção da GUI | ||
|
||
self.res = '' # Atributo que guarda o texto mostrado ao usuário | ||
|
||
|
||
def gui_Ui(self): | ||
root = QtWidgets.QWidget(self) # Área principal (root), onde tudo vai ser colocado dentro | ||
root.setMaximumSize(QtCore.QSize(180, 290)) # Define o tamanho máximo que ela chega | ||
self.setCentralWidget(root) # Define como área central | ||
|
||
## ------------------------------------------------------------------------------------------------ | ||
## Entrada do número: | ||
lb_Entrada = self.lbl("Número", 12, 10, 10, 151, 31, root) # Cria a lbl com as coordenadas | ||
lb_Entrada.setAlignment(QtCore.Qt.AlignCenter) # Alinhamento: texto no centro | ||
|
||
self.ent_Entrada = QtWidgets.QTextEdit(root) # Cria a entrada de texto | ||
self.ent_Entrada.setGeometry(QtCore.QRect(10, 40, 161, 21)) # Define a posição | ||
self.ent_Entrada.setMaximumSize(161, 21) # Define o tamanho máximo da entrada | ||
self.ent_Entrada.setFont(QFont('Arial', 12)) # Fonte | ||
self.ent_Entrada.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) # Tira a barra de rolagem | ||
|
||
## ------------------------------------------------------------------------------------------------ | ||
## Base inicial: | ||
lb_Inicial = self.lbl("Base inicial", 12, 10, 80, 91, 21, root) # Cria a lbl com as coordenadas | ||
lb_Inicial.setAlignment(QtCore.Qt.AlignRight) # Alinhamento: texto na direita | ||
|
||
self.ent_Inicial = self.ent(12, 110, 80, 51, 21, root) # Cria a entrada de texto com as coordenadas | ||
|
||
## ------------------------------------------------------------------------------------------------ | ||
## Base final: | ||
lb_Final = self.lbl("Base final", 12, 20, 110, 81, 21, root) # Cria a lbl com as coordenadas | ||
lb_Final.setAlignment(QtCore.Qt.AlignRight) # Alinhamento: texto na direita | ||
|
||
self.ent_Final = self.ent(12, 110, 110, 51, 21, root) # Cria a entrada de texto com as coordenadas | ||
|
||
## ------------------------------------------------------------------------------------------------ | ||
## Calcular: | ||
bt_Calcular = QtWidgets.QPushButton("Calcular", root) # Cria o botão | ||
bt_Calcular.setGeometry(QtCore.QRect(40, 150, 101, 23)) # Define a posição | ||
bt_Calcular.clicked.connect(self.cal_pressed) # Add a ação dele | ||
|
||
self.lb_Resposta = QtWidgets.QTextBrowser(root) # Cria a saída de texto | ||
self.lb_Resposta.setGeometry(QtCore.QRect(10, 180, 161, 51)) # Define sua posição | ||
|
||
## ------------------------------------------------------------------------------------------------ | ||
## Copyright: | ||
txt_Copyright = "COPYRIGHT © 2020 KINGS\nAll rights reserved" # Texto copyright | ||
copyright_Txt = self.lbl(txt_Copyright, 7, 20, 240, 141, 31, root) # Cria a lbl com as coordenadas | ||
copyright_Txt.setFont(QFont('Arial',7, QFont.Bold)) # Fonte | ||
copyright_Txt.setAlignment(QtCore.Qt.AlignCenter) # Alinhamento: texto no centro | ||
|
||
|
||
## ------------------------------------------------------------------------------------------------ | ||
## ------------------------------------------------------------------------------------------------ | ||
### Funções gerais: | ||
|
||
# Cria todas as lbls | ||
def lbl(self, txt_, tam_, p1_, p2_, p3_, p4_, wid_): | ||
lb = QtWidgets.QLabel(txt_, wid_) # Cria uma label | ||
lb.setGeometry(QtCore.QRect(p1_, p2_, p3_, p4_)) # Define a posição | ||
lb.setFont(QFont('Arial', tam_)) # Define a fonte | ||
return lb # Retorna a label | ||
|
||
# Cria as entradas numéricas | ||
def ent(self, tam_, p1_, p2_, p3_, p4_, wid_): | ||
ent = QtWidgets.QSpinBox(wid_) # Cria uma entrada de números | ||
ent.setGeometry(QtCore.QRect(p1_, p2_, p3_, p4_)) # Define a posição | ||
ent.setFont(QFont('Arial', tam_)) # Define a fonte | ||
ent.setMinimum(2) # Número mínimo | ||
ent.setMaximum(36) # Número máximo | ||
return ent # Retorna a entrada | ||
|
||
# Caso aconteça algum erro esse método eh chamado | ||
def error(self): | ||
self.ent_Entrada.setStyleSheet( | ||
"QTextEdit {background-color: rgb(255, 127, 127);}") # Cor de fundo fica vermelho | ||
|
||
self.res = "Número inválido!\n\n" + self.res # Mensagem de número inválido | ||
|
||
# Pegar os dados de entrada | ||
def cal_pressed(self): | ||
num = self.ent_Entrada.toPlainText() # Pega a entrada (número) | ||
bi = int(self.ent_Inicial.text()) # Base inicial | ||
bf = int(self.ent_Final.text()) # Base final | ||
mudan = md.Mudan_Base(num, bi, bf) # Instancia um objeto da classe mudança de base | ||
if (mudan.is_possible()): # Verifica se eh possivel | ||
self.res = f"O número {num} [{bi} -> {bf}] = {mudan.result()}\n\n" + self.res # Adiciona o resultado | ||
self.ent_Entrada.setStyleSheet("QTextEdit {background-color: rgb(255, 255, 255);}") # Deixa o fundo branco | ||
else: self.error() # Se não for possível chama o erro | ||
|
||
self.ent_Inicial.setValue(2) # Deixa os valores como padrão | ||
self.ent_Final.setValue(2) | ||
self.ent_Entrada.setText('') | ||
self.lb_Resposta.setText(self.res) # Mostra o resultado ao usuário | ||
|
||
del mudan # Deleta o objeto instânciado |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
###### Gui Reis - guisreis25@gmail.com ###### COPYRIGHT © 2020 KINGS - All rights reserved | ||
|
||
## Arquivo main | ||
|
||
## Bibliotecas: | ||
# Sistema: | ||
import sys | ||
|
||
# Arquivo local | ||
from GUI import * | ||
|
||
# GUI: | ||
from PyQt5.QtWidgets import QApplication | ||
|
||
# main: | ||
if __name__ == "__main__": | ||
app = QApplication(sys.argv) | ||
win = Gui() | ||
|
||
win.show() | ||
sys.exit(app.exec_()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# -*- mode: python ; coding: utf-8 -*- | ||
|
||
block_cipher = None | ||
|
||
|
||
a = Analysis(['main.py'], | ||
pathex=['G:\\OneDrive\\Gui\\GuiTestes\\Python\\Projetos pessoais\\Mudança de Base\\Muduca-de-base\\_main'], | ||
binaries=[], | ||
datas=[], | ||
hiddenimports=[], | ||
hookspath=[], | ||
runtime_hooks=[], | ||
excludes=[], | ||
win_no_prefer_redirects=False, | ||
win_private_assemblies=False, | ||
cipher=block_cipher, | ||
noarchive=False) | ||
pyz = PYZ(a.pure, a.zipped_data, | ||
cipher=block_cipher) | ||
exe = EXE(pyz, | ||
a.scripts, | ||
a.binaries, | ||
a.zipfiles, | ||
a.datas, | ||
[], | ||
name='main', | ||
debug=False, | ||
bootloader_ignore_signals=False, | ||
strip=False, | ||
upx=True, | ||
upx_exclude=[], | ||
runtime_tmpdir=None, | ||
console=False ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
###### Gui Reis - guisreis25@gmail.com ###### COPYRIGHT © 2020 KINGS - All rights reserved | ||
|
||
|
||
## Classe responsável por fazer a mudança de bases! | ||
|
||
class Mudan_Base: | ||
## Construtor: define os atributos (chamada por parâmetro) | ||
def __init__(self, num_:str, bi_:int, bf_:int): | ||
self.num_str = num_.lower() # Número a ser convertido | ||
self.bi = bi_ # Base Inicial | ||
self.bf = bf_ # Base Final | ||
|
||
## Método que tranforma em decimal | ||
def to_decimal(self): # 1ª Parte: conversão de qualquer base para decimal | ||
return int(self.num_str, base = self.bi) # Retorna a mudança | ||
|
||
## Método que tranforma de decimal pra base final | ||
def to_baseFinal(self): # 2ª Parte: conversão de decimal para a base desejada | ||
num_dec = self.to_decimal() | ||
self.res = [] # Lista para guardar os resultados (os restos) | ||
while num_dec != 0: | ||
self.res.append(num_dec % self.bf) # Add na lista | ||
num_dec = num_dec // self.bf # Substitui pelo quociente obtido. | ||
|
||
## Verifica se o número pertence a base inicial | ||
def is_possible(self): | ||
try: # Try: tenta converter o número pra decimal | ||
self.to_decimal() | ||
return True # True: todos os números são da base inicial | ||
except: return False # False: Se tiver algum número que não seja da base inicial | ||
|
||
## Cria o resultado | ||
def result(self): | ||
if self.bf == 10 : # Se a base final for 10 | ||
return self.to_decimal() # Retorna apenas a 1ª parte (n eh necessário continuar) | ||
|
||
self.to_baseFinal() # Se não faz a 2ª parte | ||
res_str = '' # String para armazenar o resultado | ||
for ind in range (len(self.res)-1, -1 , -1): # Loop: pega os números convertidos de trás pra frente | ||
if self.res[ind] > 9: # Se for o número for uma letra (10,11..) | ||
res_str += chr(55+self.res[ind]).upper() # Acha a letra correspondente | ||
else: # Se não tiver letra | ||
res_str += str(self.res[ind]) # Apenas add o próprio número | ||
return res_str # Retorna o resultado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
# Form implementation generated from reading ui file 'GUI_01.ui' | ||
# | ||
# Created by: PyQt5 UI code generator 5.15.0 | ||
# | ||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is | ||
# run again. Do not edit this file unless you know what you are doing. | ||
|
||
|
||
from PyQt5 import QtCore, QtGui, QtWidgets | ||
|
||
|
||
class Ui_MainWindow(object): | ||
def setupUi(self, MainWindow): | ||
MainWindow.setObjectName("MainWindow") | ||
MainWindow.resize(180, 290) | ||
MainWindow.setMinimumSize(QtCore.QSize(180, 290)) | ||
MainWindow.setMaximumSize(QtCore.QSize(180, 290)) | ||
font = QtGui.QFont() | ||
font.setPointSize(9) | ||
font.setUnderline(False) | ||
MainWindow.setFont(font) | ||
self.centralwidget = QtWidgets.QWidget(MainWindow) | ||
self.centralwidget.setObjectName("centralwidget") | ||
self.lb_Resposta = QtWidgets.QTextBrowser(self.centralwidget) | ||
self.lb_Resposta.setGeometry(QtCore.QRect(10, 180, 161, 51)) | ||
self.lb_Resposta.setObjectName("lb_Resposta") | ||
self.nt_Calcular = QtWidgets.QPushButton(self.centralwidget) | ||
self.nt_Calcular.setGeometry(QtCore.QRect(40, 150, 101, 23)) | ||
self.nt_Calcular.setObjectName("nt_Calcular") | ||
self.ent_Inicial = QtWidgets.QSpinBox(self.centralwidget) | ||
self.ent_Inicial.setGeometry(QtCore.QRect(110, 80, 51, 21)) | ||
font = QtGui.QFont() | ||
font.setPointSize(12) | ||
self.ent_Inicial.setFont(font) | ||
self.ent_Inicial.setMinimum(2) | ||
self.ent_Inicial.setMaximum(36) | ||
self.ent_Inicial.setObjectName("ent_Inicial") | ||
self.ent_Final = QtWidgets.QSpinBox(self.centralwidget) | ||
self.ent_Final.setGeometry(QtCore.QRect(110, 110, 51, 21)) | ||
font = QtGui.QFont() | ||
font.setPointSize(12) | ||
self.ent_Final.setFont(font) | ||
self.ent_Final.setMinimum(2) | ||
self.ent_Final.setMaximum(36) | ||
self.ent_Final.setObjectName("ent_Final") | ||
self.lb_Final = QtWidgets.QLabel(self.centralwidget) | ||
self.lb_Final.setGeometry(QtCore.QRect(20, 110, 81, 21)) | ||
font = QtGui.QFont() | ||
font.setPointSize(12) | ||
self.lb_Final.setFont(font) | ||
self.lb_Final.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) | ||
self.lb_Final.setObjectName("lb_Final") | ||
self.lb_Inicial = QtWidgets.QLabel(self.centralwidget) | ||
self.lb_Inicial.setGeometry(QtCore.QRect(10, 80, 91, 21)) | ||
font = QtGui.QFont() | ||
font.setPointSize(12) | ||
self.lb_Inicial.setFont(font) | ||
self.lb_Inicial.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) | ||
self.lb_Inicial.setObjectName("lb_Inicial") | ||
self.lb_Entrada = QtWidgets.QLabel(self.centralwidget) | ||
self.lb_Entrada.setGeometry(QtCore.QRect(10, 10, 151, 31)) | ||
font = QtGui.QFont() | ||
font.setPointSize(12) | ||
self.lb_Entrada.setFont(font) | ||
self.lb_Entrada.setAlignment(QtCore.Qt.AlignCenter) | ||
self.lb_Entrada.setObjectName("lb_Entrada") | ||
self.ent_Entrada = QtWidgets.QTextEdit(self.centralwidget) | ||
self.ent_Entrada.setGeometry(QtCore.QRect(10, 40, 161, 21)) | ||
font = QtGui.QFont() | ||
font.setPointSize(11) | ||
self.ent_Entrada.setFont(font) | ||
self.ent_Entrada.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) | ||
self.ent_Entrada.setObjectName("ent_Entrada") | ||
self.copyright_Txt = QtWidgets.QTextBrowser(self.centralwidget) | ||
self.copyright_Txt.setGeometry(QtCore.QRect(20, 240, 141, 31)) | ||
font = QtGui.QFont() | ||
font.setBold(True) | ||
font.setWeight(75) | ||
font.setStrikeOut(False) | ||
font.setStyleStrategy(QtGui.QFont.NoAntialias) | ||
self.copyright_Txt.setFont(font) | ||
self.copyright_Txt.setWhatsThis("") | ||
self.copyright_Txt.setAutoFillBackground(True) | ||
self.copyright_Txt.setStyleSheet("background-color: rgb(240, 240, 240);") | ||
self.copyright_Txt.setFrameShape(QtWidgets.QFrame.NoFrame) | ||
self.copyright_Txt.setFrameShadow(QtWidgets.QFrame.Plain) | ||
self.copyright_Txt.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) | ||
self.copyright_Txt.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) | ||
self.copyright_Txt.setOverwriteMode(False) | ||
self.copyright_Txt.setObjectName("copyright_Txt") | ||
MainWindow.setCentralWidget(self.centralwidget) | ||
self.menubar = QtWidgets.QMenuBar(MainWindow) | ||
self.menubar.setGeometry(QtCore.QRect(0, 0, 180, 22)) | ||
self.menubar.setObjectName("menubar") | ||
MainWindow.setMenuBar(self.menubar) | ||
self.statusbar = QtWidgets.QStatusBar(MainWindow) | ||
self.statusbar.setObjectName("statusbar") | ||
MainWindow.setStatusBar(self.statusbar) | ||
|
||
self.retranslateUi(MainWindow) | ||
QtCore.QMetaObject.connectSlotsByName(MainWindow) | ||
|
||
def retranslateUi(self, MainWindow): | ||
_translate = QtCore.QCoreApplication.translate | ||
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) | ||
self.nt_Calcular.setText(_translate("MainWindow", "Calcular")) | ||
self.lb_Final.setText(_translate("MainWindow", "Base final:")) | ||
self.lb_Inicial.setText(_translate("MainWindow", "Base inicial:")) | ||
self.lb_Entrada.setText(_translate("MainWindow", "Número:")) | ||
self.copyright_Txt.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" | ||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" | ||
"p, li { white-space: pre-wrap; }\n" | ||
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:9pt; font-weight:600; font-style:normal;\">\n" | ||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:7pt;\">COPYRIGHT © 2020 KINGS</span></p>\n" | ||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:7pt;\">All rights reserved</span></p></body></html>")) | ||
|
||
|
||
if __name__ == "__main__": | ||
import sys | ||
app = QtWidgets.QApplication(sys.argv) | ||
MainWindow = QtWidgets.QMainWindow() | ||
ui = Ui_MainWindow() | ||
ui.setupUi(MainWindow) | ||
MainWindow.show() | ||
sys.exit(app.exec_()) |
Oops, something went wrong.