Resumo : neste tutorial, você aprenderá como usar o QPushButton
widget PyQt para criar um botão.
Introdução ao widget PyQt QPushButton
A classe PyQt QPushButton
permite criar um widget de botão, que pode ser um botão de ação ou de alternância.
Para criar um botão, siga estas etapas:
Primeiro, importe QPushButton
do PyQt6.QtWidgets
módulo:
from PyQt6.QtWidgets import QPushButton
Linguagem de código: Parser3 ( parser3 )
Segundo, chame o
com um texto que aparece no botão:QPushButton
()
button = QPushButton('Click Me')
Linguagem de código: Python ( python )
Terceiro, conecte o clicked
sinal a uma chamada:
button.clicked.connect(self.on_clicked)
Linguagem de código: Python ( python )
O on_clicked
é um método que é executado quando o botão é clicado.
O seguinte mostra o programa completo que exibe um botão em uma janela:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QPushButton Widget')
self.setGeometry(100, 100, 320, 210)
button = QPushButton('Click Me')
# place the widget on the window
layout = QVBoxLayout()
layout.addWidget(button)
self.setLayout(layout)
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
# create the main window
window = MainWindow()
# start the event loop
sys.exit(app.exec())
Linguagem de código: Python ( python )
Saída:
Criando um botão com um ícone
Para criar um botão com um ícone, siga as seguintes etapas:
Primeiro, importe QIcon
do PyQt6.QtGui
módulo:
from PyQt6.QtGui import QIcon
Linguagem de código: Python ( python )
Segundo, crie um QPushButton
objeto:
button = QPushButton('Delete')
Linguagem de código: Python ( python )
Terceiro, adicione o ícone do botão chamando o setIcon()
método do QPushButton
com o QIcon
objeto:
button.setIcon(QIcon('trash.png'))
Linguagem de código: Python ( python )
Observe que o QIcon
objeto aceita um caminho para o arquivo de ícone. Para mostrar o trash.png
ícone, você pode baixá-lo aqui:
Para deixar o botão mais bonito, você pode definir seu tamanho chamando o setFixedSize()
método.
O tamanho é determinado pelo QSize
objeto com dois argumentos largura e altura. Observe que você precisa importar QSize
a classe do PyQt6.QtCore
módulo.
O programa a seguir mostra como exibir um botão com um ícone:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt6.QtCore import QSize
from PyQt6.QtGui import QIcon
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QPushButton Widget')
self.setGeometry(100, 100, 320, 210)
button = QPushButton('Delete')
button.setIcon(QIcon('trash.png'))
button.setFixedSize(QSize(100, 30))
# place the widget on the window
layout = QVBoxLayout()
layout.addWidget(button)
self.setLayout(layout)
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
# create the main window
window = MainWindow()
# start the event loop
sys.exit(app.exec())
Linguagem de código: Python ( python )
Saída:
Criando um botão de alternância
A QPushButton
classe possui a checkable
propriedade que permite usar o botão como botão de alternância.
Um botão de alternância tem um estado ligado/desligado. Se o botão estiver ativado, o botão marcado é verdadeiro. Caso contrário, é falso.
Para um botão de alternância, o clicked
sinal envia o status do botão, ativado ou desativado.
O programa a seguir exibe uma janela que possui um botão de alternância:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QPushButton Widget')
self.setGeometry(100, 100, 320, 210)
button = QPushButton('Toggle Me')
button.setCheckable(True)
button.clicked.connect(self.on_toggle)
# place the button on the window
layout = QVBoxLayout()
layout.addWidget(button)
self.setLayout(layout)
# show the window
self.show()
def on_toggle(self, checked):
print(checked)
if __name__ == '__main__':
app = QApplication(sys.argv)
# create the main window
window = MainWindow()
# start the event loop
sys.exit(app.exec())
Linguagem de código: Python ( python )
Resumo
- Use o widget PyQt
QPushButton
para criar um botão ou botão de alternância.