diff --git a/aula201/aula0006.py b/aula201/aula0006.py new file mode 100644 index 0000000..9581abc --- /dev/null +++ b/aula201/aula0006.py @@ -0,0 +1,69 @@ +# Trabalhando com classes e herança no PySide6 +import sys + +from PySide6.QtCore import Slot +from PySide6.QtWidgets import (QApplication, QGridLayout, QMainWindow, + QPushButton, QWidget) + + +class MyWindow(QMainWindow): + def __init__(self, parent=None): + super().__init__(parent) + + self.central_widget = QWidget() + + self.setCentralWidget(self.central_widget) + self.setWindowTitle('Minha janela bonita') + + # Botão + self.botao1 = self.make_button('Texto do botão') + self.botao1.clicked.connect(self.segunda_acao_marcada) # type: ignore + + self.botao2 = self.make_button('Botão 2') + + self.botao3 = self.make_button('Terceiro') + + self.grid_layout = QGridLayout() + self.central_widget.setLayout(self.grid_layout) + + self.grid_layout.addWidget(self.botao1, 1, 1, 1, 1) + self.grid_layout.addWidget(self.botao2, 1, 2, 1, 1) + self.grid_layout.addWidget(self.botao3, 3, 1, 1, 2) + + # statusBar + self.status_bar = self.statusBar() + self.status_bar.showMessage('Mostrar mensagem na barra') + + # menuBar + self.menu = self.menuBar() + self.primeiro_menu = self.menu.addMenu('Primeiro menu') + self.primeira_acao = self.primeiro_menu.addAction('Primeira ação') + self.primeira_acao.triggered.connect( # type:ignore + self.muda_mensagem_da_status_bar) + + self.segunda_action = self.primeiro_menu.addAction('Segunda ação') + self.segunda_action.setCheckable(True) + self.segunda_action.toggled.connect( # type:ignore + self.segunda_acao_marcada) + self.segunda_action.hovered.connect( # type:ignore + self.segunda_acao_marcada) + + @Slot() + def muda_mensagem_da_status_bar(self): + self.status_bar.showMessage('O meu slot foi executado') + + @Slot() + def segunda_acao_marcada(self): + print('Está marcado?', self.segunda_action.isChecked()) + + def make_button(self, text): + btn = QPushButton(text) + btn.setStyleSheet('font-size: 80px;') + return btn + + +if __name__ == '__main__': + app = QApplication(sys.argv) + window = MyWindow() + window.show() + app.exec() # O loop da aplicação