TUTORIAL · PyQt5
PyQt5 Tutorial - Botão de pressão
Este tutorial introduz o widget do botão de pressão PyQt5.
Nesta página
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
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!.
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 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.