PyQt5 QInputDialog小工具

PyQt5 QInputDialog小工具

这是一个预先配置好的对话框,有一个文本字段和两个按钮,OK和Cancel。在用户点击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 PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets 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()

输出

上面的代码产生了以下输出 –

PyQt5 - QInputDialog小工具

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程