Calculadora: criando a grid de botões

This commit is contained in:
Luiz Otávio
2023-03-01 09:57:16 -03:00
parent 440f69e84f
commit 8c1051e9eb
3 changed files with 25 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
from PySide6.QtWidgets import QGridLayout, QPushButton
from utils import isEmpty, isNumOrDot
from variables import MEDIUM_FONT_SIZE
@@ -12,17 +13,27 @@ class Button(QPushButton):
font.setPixelSize(MEDIUM_FONT_SIZE)
self.setFont(font)
self.setMinimumSize(75, 75)
self.setProperty('cssClass', 'specialButton')
class ButtonsGrid(QGridLayout):
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self._grid_mask = [
self._gridMask = [
['C', '', '^', '/'],
['7', '8', '9', '*'],
['4', '5', '6', '-'],
['1', '2', '3', '+'],
['', '0', '.', '='],
]
self._makeGrid()
def _makeGrid(self):
for rowNumber, rowData in enumerate(self._gridMask):
for colNumber, buttonText in enumerate(rowData):
button = Button(buttonText)
if not isNumOrDot(buttonText) and not isEmpty(buttonText):
button.setProperty('cssClass', 'specialButton')
self.addWidget(button, rowNumber, colNumber)

View File

@@ -1,6 +1,6 @@
import sys
from buttons import Button, ButtonsGrid
from buttons import ButtonsGrid
from display import Display
from info import Info
from main_window import MainWindow

View File

@@ -0,0 +1,11 @@
import re
NUM_OR_DOT_REGEX = re.compile(r'^[0-9.]$')
def isNumOrDot(string: str):
return bool(NUM_OR_DOT_REGEX.search(string))
def isEmpty(string: str):
return len(string) == 0