Como usar Pyqt qpushbutton

Como usar Pyqt qpushbutton
Os botões são usados ​​em aplicativos da GUI para executar várias operações com base nos eventos gerados pelo usuário. O Qpushbutton A classe de pyqt é usada no python para criar botões exigidos pelo aplicativo. Esta classe herda as funcionalidades centrais do QabstractButton aula. Texto ou ícones podem ser usados ​​para legendar o botão. Os botões podem ser ativados usando um mouse e teclado. Qualquer evento de botão, incluindo o botão que está sendo clicado ou clicado duas vezes, pode ser associado a uma função ou método para lidar com o evento. Este tutorial mostra como criar vários tipos de botões usando o Qpushbutton classe de pyqt em python.

Métodos QPushButton

O Qpushbutton A classe tem muitos métodos para executar várias tarefas relacionadas a botões. Alguns dos métodos mais usados ​​desta classe são mencionados abaixo:

Nome do método Propósito
texto() Usado para ler a legenda do botão.
setText () Usado para definir texto na legenda do botão.
seticon () Usado para definir um ícone na legenda do botão.
conjunto padrão() Usado para definir o botão padrão.
setEnabled () Usado para ativar ou desativar botões. Um valor de Verdadeiro é usado para ativar o botão e um valor de Falso é usado para desativar o botão.
setCheckable () Usado para identificar se o botão é pressionado ou liberado.
está checado() Usado para ler o estado do botão que é um valor booleano.
alternar() Usado para alternar entre os estados. Se o valor atual do estado do botão for Verdadeiro, então o valor mudará para Falso, e vice versa.

Qpushbutton uso

As seções a seguir fornecem vários exemplos simples para explicar o uso de Qpushbutton.

Exemplo 1: Crie um botão simples

O script a seguir é usado para criar um único botão na janela. O script anexará uma função personalizada com o evento clicado do botão para verificar se o botão foi clicado. A janela exibirá um botão após a execução do código. Se o usuário clicar no botão, o texto 'Botão é pressionado' vai mostrar no rótulo.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar qapplication, qwidget, qpushbutton, qlabel
# Defina a classe para criar um único botão
classe ButtOnexample (qwidget):
def __init __ (self):
# Ligue para o construtor pai
super().__iniciar__()
# Crie um botão
auto.btn = qpushbutton ('clique em mim', eu)
# Definir texto da dica de ferramenta para o botão
auto.btn.SettOoltip ('Este é um botão simples')
# Defina a geometria do botão
auto.btn.Setgeometria (100, 20, 100, 30)
# Função de chamada quando o botão é clicado
auto.btn.clicado.Conecte -se (self.OnClicked)
# Defina o rótulo na parte inferior do botão
auto.msglabel = qlabel (", eu)
# Defina a geometria do rótulo
auto.Msglabel.Setgeometria (90, 60, 290, 60)
# Defina o título da janela
auto.setWindowTitle ('Uso de PushButton')
# Defina a geometria da janela principal
auto.Setgeometria (10, 10, 300, 150)
# Defina a posição da janela principal na tela
auto.mover (850, 300)
# Exiba a janela
auto.mostrar()
# Defina a função para lidar com o evento de clique do botão
Def OnClicked (self):
# Defina o texto para o rótulo
auto.Msglabel.SetText (o botão é pressionado.')
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
Button = Buttonexample ()
aplicativo.exec ()

A seguinte janela aparecerá após a execução do script.

Se o usuário clicar no Çlick me Botão, então o seguinte texto aparecerá na legenda abaixo do botão.

Exemplo 2: Crie vários botões de pressão

O script a seguir criará vários botões usando o Qpushbutton aula. Dois botões são criados no script. O evento clicado do 'Sim'O botão está anexado a um método chamado BTN1_ONCLICKED (), e o evento clicado do 'Não'O botão está anexado a um método chamado BTN2_ONCLICKED (). Uma legenda criada abaixo dos botões exibirá a mensagem especificada com base no botão clicado pelo usuário. O setgeometry () A função é usada para cada rótulo e botão para definir a posição dos objetos na janela.

Importar sistemas
de pyqt5.Qtwidgets importar qapplication, qwidget, qpushbutton, qlabel
Classe MultIbutTons (Qwidget):
def __init __ (self):
# Ligue para o construtor pai
super().__iniciar__()
# Defina o rótulo na parte superior do botão
auto.toplabel = qlabel ('

Você gosta de python?

', auto)
# Defina a geometria do rótulo
auto.Toplabel.Setgeometria (100, 20, 290, 50)
# Crie o primeiro botão
auto.btn1 = qpushbutton ('sim', self)
# Defina a geometria do botão
auto.BTN1.Setgeometria (130, 70, 60, 40)
# Função de chamada quando o botão é clicado
auto.BTN1.clicado.Conecte -se (self.BTN1_ONCLICKED)
# Crie o segundo botão
auto.btn2 = qpushbutton ('não', eu)
# Defina a geometria do botão
auto.BTN2.Setgeometry (200, 70, 60, 40)
# Função de chamada quando o botão é clicado
auto.BTN2.clicado.Conecte -se (self.BTN2_ONCLICKED)
# Defina o rótulo na parte inferior do botão
auto.msglabel = qlabel (", eu)
# Defina a geometria do rótulo
auto.Msglabel.Setgeometria (130, 120, 300, 80)
# Defina o título da janela
auto.setWindowTitle ('Uso de múltiplos presságios')
# Defina a geometria da janela principal
auto.Setgeometria (10, 10, 400, 200)
# Defina a posição da janela principal na tela
auto.mover (850, 300)
# Exiba a janela
auto.mostrar()
def Btn1_OnClicked (self):
# Defina o texto para o rótulo inferior
auto.Msglabel.setText ('

Você clicou sim.

')
def Btn2_OnClicked (self):
# Defina o texto para o rótulo inferior
auto.Msglabel.setText ('

Você clicou não.

')
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
Button = MultIbuttons ()
aplicativo.exec ()

A seguinte janela aparecerá após a execução do script.

Se o usuário clicar no Sim Botão, a mensagem, 'Você clicou sim'será exibido como o texto do rótulo.

Se o usuário clicar no Não Botão, a mensagem, 'Você clicou não ' será exibido como o texto do rótulo.

Conclusão

A classe QPushButton permite que os usuários criem um ou mais botões com base nos requisitos do aplicativo. Este tutorial mostrou o uso desta classe para criar um ou vários botões, bem como lidar com eventos de cliques de botões usando funções de manipulador de eventos personalizadas.