Resumo : neste tutorial, você aprenderá como usar a QInputDialog
classe PyQt para criar um widget de diálogo de entrada que recebe entradas do usuário.
Introdução à classe PyQt QInputDialog
A QInputDialog
classe 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 QInputDialog
possui 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 OK
botã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:
Como funciona.
Primeiro, crie um botão e conecte seu sinal clicado ao open_input_dialog
método:
btn = QPushButton('Set Window Title')
btn.clicked.connect(self.open_input_dialog)
Linguagem de código: Python ( python )
Segundo, defina o open_input_dialog
mé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 title
texto de entrada será armazenado e a ok
variável será True.
No entanto, se você inserir algum texto, mas clicar no botão Cancelar, a title
variável armazenará o texto de entrada, mas a ok
variável o False
armazenará.
Resumo
- Use
QInputDialog
para criar uma caixa de diálogo de entrada que receba informações do usuário.