Trabalhando com classes e herança no PySide6
This commit is contained in:
69
aula201/aula0006.py
Normal file
69
aula201/aula0006.py
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user