QInputDialog是一个预配置的对话框,带有一个文本字段和两个按钮,确定和取消。 用户单击 Ok 按钮或按 Enter 后,父窗口收集文本框中的输入。用户输入可以是数字、字符串或列表中的项目。 还显示提示用户他应该做什么的标签。
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MainWindow(QWidget):
def __init__(self, parent=None):
super().__init__()
layout = QFormLayout()
self.btn = QPushButton("Choose from list")
self.btn.clicked.connect(self.getItem)
self.le = QLineEdit()
layout.addRow(self.btn, self.le)
self.btn1 = QPushButton("get name")
self.btn1.clicked.connect(self.gettext)
self.le1 = QLineEdit()
layout.addRow(self.btn1, self.le1)
self.btn2 = QPushButton("Enter an integer")
self.btn2.clicked.connect(self.getint)
self.le2 = QLineEdit()
layout.addRow(self.btn2, self.le2)
self.setLayout(layout)
self.setWindowTitle("Input Dialog demo")
def getItem(self):
items = ("C", "C++", "Java", "Python")
item, ok = QInputDialog.getItem(
self, "select input dialog", "list of languages", items, 0, False
)
if ok and item:
self.le.setText(item)
def gettext(self):
text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
if ok:
self.le1.setText(str(text))
def getint(self):
num, ok = QInputDialog.getInt(self, "integer input dualog", "enter a number")
if ok:
self.le2.setText(str(num))
def main():
app = QApplication(sys.argv)
ex = MainWindow()
ex.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()
示例实现了输入对话框功能。 顶层窗口有三个按钮。 它们的 clicked() 信号通过连接的插槽弹出 InputDialog。
items = ("C", "C++", "Java", "Python")
item, ok = QInputDialog.getItem(
self, "select input dialog", "list of languages", items, 0, False
)
if ok and item:
self.le.setText(item)
def gettext(self):
text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
if ok:
self.le1.setText(str(text))
def getint(self):
num,ok = QInputDialog.getInt(self,"integer input dualog","enter a number")
if ok:
self.le2.setText(str(num))
运行结果如下:



