- PyQt5 教程
- PyQt5 - 主页
- PyQt5 - 简介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要类
- PyQt5 - 使用 Qt Designer
- PyQt5 - 信号和槽
- PyQt5 - 布局管理
- PyQt5 - 基本控件
- PyQt5 - QDialog 类
- PyQt5 - QMessageBox
- PyQt5 - 多文档界面
- PyQt5 - 拖放
- PyQt5 - 数据库处理
- PyQt5 - 绘图 API
- PyQt5 - 画刷样式常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 类
- PyQt5 有用的资源
- PyQt5 - 快速指南
- PyQt5 - 有用的资源
- PyQt5 - 讨论
PyQt5 - QInputDialog 控件
这是一个预先配置的具有一个文本字段和两个按钮的对话框,确定和取消。父窗口在用户单击确定按钮或按 Enter 时收集文本框中的输入。
用户输入可以是数字、字符串或列表中的项。还显示提示用户执行操作的标签。
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()
输出
上面的代码产生以下输出 −
pyqt_basic_widgets.htm
广告