PyQt - QInputDialog 小部件
这是一个预配置的对话框,带有一个文本字段和两个按钮,确定和取消。 父窗口在用户点击 Ok 按钮或回车后收集文本框中的输入。
用户输入可以是数字、字符串或列表中的项目。 还会显示一个标签,提示用户他应该做什么。
QInputDialog 类具有以下静态方法来接受来自用户的输入 −
序号 | 方法 & 描述 |
---|---|
1 |
getInt() 为整数创建一个微调框 |
2 |
getDouble() 可以输入浮点数的微调框 |
3 |
getText() 用于键入文本的简单行编辑字段 |
4 |
getItem() 用户可以从中选择项目的组合框 |
示例
以下示例实现了输入对话框功能。 顶层窗口有三个按钮。 它们的 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))
完整代码如下 −
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class inputdialogdemo(QWidget): def __init__(self, parent = None): super(inputdialogdemo, self).__init__(parent) 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 = inputdialogdemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
上面的代码产生以下输出 −