对话框或对话窗口是现代GUI程序不可或缺的一部分。对话的定义是两个或多个人之间的交谈。在计算机程序中对话是与程序进行“交谈”的窗体。对话框用于输入数据、修改数据、更改程序设置等。
QInputDialog
QInputDialog提供了从用户取得一个输入的简便对话框。输入的值可以是字符串、数字或列表中的一项。
import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit, QInputDialog, QApplication)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.btn = QPushButton("Dialog", self)
self.btn.move(20, 20)
self.btn.clicked.connect(self.showDialog)
self.le = QLineEdit(self)
self.le.move(130, 22)
self.setGeometry(300, 300, 290, 150)
self.setWindowTitle("Input dialog")
self.show()
def showDialog(self):
text, ok = QInputDialog.getText(self, "Input Dialog", "Enter your name:")
if ok:
self.le.setText(str(text))
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
这个例子中有一个按钮和一个LineEdit控件。按钮用于显示对话框以取得用户输入。输入的文本会显示在LineEdit控件中。
text, ok = QInputDialog.getText(self, 'Input Dialog',
'Enter your name:')
这行代码用于显示QInputDialog对话框。第一个字符串参数是对话框的标题,第二个是对话框中的消息。QInputDialog.getText方法会返回用户输入的文本和一个布尔值。当点击OK按钮时,这个布尔值为true。