PyQt QInputDialog

Resumo : neste tutorial, você aprenderá como usar a QInputDialogclasse PyQt para criar um widget de diálogo de entrada que recebe entradas do usuário.

Introdução à classe PyQt QInputDialog

A QInputDialogclasse cria um widget de diálogo de entrada que recebe as entradas dos usuários. O valor de entrada pode ser uma string, um número inteiro, um ponto flutuante ou um item de uma lista.

O QInputDialogpossui cinco métodos estáticos para obter entradas:

  • getText()– permite que o usuário insira uma única string.
  • getInt()– permite ao usuário inserir um número inteiro.
  • getDouble()– permite ao usuário inserir um número de ponto flutuante.
  • getMultiLineText()– permite ao usuário inserir texto multilinha.
  • getItem()– permite ao usuário selecionar um item de uma lista.

Esses métodos retornam uma tupla de dois elementos. O primeiro elemento armazena a entrada do usuário e o segundo elemento indica se o usuário seleciona o OKbotão ou Cancelar.

O programa a seguir mostra como exibir uma caixa de diálogo de entrada que recebe uma única string de um usuário:

import sys
from PyQt6.QtWidgets import QApplication,  QInputDialog, QWidget, QVBoxLayout,  QPushButton


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt Input Dialog')
        self.setGeometry(100, 100, 300, 100)

        layout = QVBoxLayout()
        self.setLayout(layout)

        # file selection
        btn = QPushButton('Set Window Title')
        btn.clicked.connect(self.open_input_dialog)

        layout.addWidget(btn)

        self.show()

    def open_input_dialog(self):
        title, ok = QInputDialog.getText(self, 'Title Setting', 'Title:')
        if ok and title:
            self.setWindowTitle(title)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec())Linguagem de código:  Python  ( python )

Saída:

PyQt QInputDialog

Como funciona.

Primeiro, crie um botão e conecte seu sinal clicado ao open_input_dialogmétodo:

btn = QPushButton('Set Window Title')
btn.clicked.connect(self.open_input_dialog)Linguagem de código:  Python  ( python )

Segundo, defina o open_input_dialogmétodo e chame o getText()método para obter o título inserido pelo usuário:

def open_input_dialog(self):
    title, ok = QInputDialog.getText(self, 'Title Setting', 'Title:')
    if ok and title:
        self.setWindowTitle(title)Linguagem de código:  Python  ( python )

O getText()método retorna uma tupla de dois elementos atribuídos ao título e à variável ok

Se você inserir algum texto e clicar no botão OK, o titletexto de entrada será armazenado e a okvariável será True.

No entanto, se você inserir algum texto, mas clicar no botão Cancelar, a titlevariável armazenará o texto de entrada, mas a okvariável o Falsearmazenará.

Resumo

  • Use QInputDialogpara criar uma caixa de diálogo de entrada que receba informações do usuário.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *