PyQt5 Tutorial - Botão de pressão

  1. Botão Push Button PyQt5 - QPushButton
  2. PyQt5 QLabel Estilo de Conjunto de Widgets de Rótulo
  3. PyQt5 QLabel Evento de Clique de Rótulo

Push button widget QPushButton é um botão de comando em PyQt5. Ele é clicado pelo usuário para comandar o PC para executar alguma ação específica, como Apply, Cancel e Save.

Botão Push Button PyQt5 - QPushButton

QPushButton.py
import sys
from PyQt5 import QtWidgets

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    
    buttonA = QtWidgets.QPushButton(windowExample)
    labelA = QtWidgets.QLabel(windowExample)
    
    buttonA.setText('Click!')
    labelA.setText('Show Label')
    
    windowExample.setWindowTitle('Push Button Example')
    
    buttonA.move(100, 50)
    labelA.move(110, 100)
    
    windowExample.setGeometry(100, 100, 300, 200)
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()

Onde,

buttonA = QtWidgets.QPushButton(windowExample)

O buttonA é o QPushButton de QtWidgets e deve ser adicionado à janela windowExample o mesmo que etiquetas introduzidas nos últimos capítulos.

buttonA.setText('Click!')

Ele define o texto de buttonA para ser Click!.

Botão de pressão do PyQt5

Na verdade, não vai fazer nada.

PyQt5 QLabel Estilo de Conjunto de Widgets de Rótulo

O estilo do widget PyQt5 QLabel como cor de fundo, família de fontes e tamanho da fonte poderia ser definido com o método setStyleSheet. Funciona como a folha de estilo em CSS.

buttonA.setStyleSheet("background-color: red;font-size:18px;font-family:Times New Roman;");

Ele define o buttonA com os seguintes estilos,

Estilo Valor
background-color red
font-size 18px
font-family Times New Roman

É conveniente definir os estilos em PyQt5 porque é semelhante ao CSS.

import sys
from PyQt5 import QtWidgets

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    
    buttonA = QtWidgets.QPushButton(windowExample)
    labelA = QtWidgets.QLabel(windowExample)

    buttonA.setStyleSheet("background-color: red;font-size:18px;font-family:Times New Roman;");
    
    buttonA.setText('Click!')
    labelA.setText('Show Label')
    
    windowExample.setWindowTitle('Push Button Example')
    
    buttonA.move(100, 50)
    labelA.move(110, 100)
    
    windowExample.setGeometry(100, 100, 300, 200)
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()

PyQt5 Exemplo de Folha de Estilos de Push Button_setStyleSheet

PyQt5 QLabel Evento de Clique de Rótulo

O evento de clique do botão está conectado a alguma função específica com o método QLabel.clicked.connect(func).

import sys
from PyQt5 import QtWidgets
   

class Test(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        self.buttonA = QtWidgets.QPushButton('Click!', self)
        self.buttonA.clicked.connect(self.clickCallback)
        self.buttonA.move(100, 50)

        self.labelA = QtWidgets.QLabel(self)
        self.labelA.move(110, 100)

        self.setGeometry(100, 100, 300, 200)

    def clickCallback(self):
        self.labelA.setText("Button is clicked")

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    test = Test()
    test.show()
    sys.exit( app.exec_() )

Quando o QPushButton buttonA é clicado, ele aciona a função clickCallback para definir o texto da etiqueta como sendo Button is clicked.