当前位置: 首页 > 文档资料 > PyQt 中文教程 >

QInputDialog

优质
小牛编辑
131浏览
2023-12-01

这是一个预先配置的对话框,带有文本字段和两个按钮,确定和取消。 用户单击“确定”按钮或按Enter后,父窗口将在文本框中收集输入。

用户输入可以是列表中的数字,字符串或项目。 还会显示一个标签,提示用户应该做什么。

QInputDialog类具有以下静态方法来接受来自用户的输入 -

Sr.No.方法和描述
1

getInt()

为整数创建一个微调框

2

getDouble()

可以输入具有浮点数的微调框

3

getText()

一个简单的行编辑字段,用于键入文本

4

getItem()

用户可以从中选择项目的组合框

例子 (Example)

以下示例实现输入对话框功能。 顶层窗口有三个按钮。 他们的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()

上面的代码产生以下输出 -

QInputDialog小部件输出