对话框是一种特殊的视窗, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。显示信息已经说过,接下来说一下文本输入对话框QInputDialog。

QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(ok和cancel)组成,当用户单击ok或按下键盘enter键后,在父窗口可以收集通过QInputDialog控件输入的信息,QInputDialog控件是QDialog标准对话框的一部分。

在QInpuTDialog控件中可以输入数字(整型或浮点型),字符串或列表中的选项,标签用于提示必要的信息。getInt()获得输入的整数;getDouble()获得输入的浮点数;getText()获得输入的字符串;getItem()获得列表里的选项输入。

程序清单:input_dialog.py

import sys from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QPushButton, QInputDialog # 继承QWidget class Dialog(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): # 字符串对话框 text_btn = QPushButton("字符串输入对话框", self) text_btn.clicked.connect(self.text_dialog) text_btn.move(10, 10) # 整数对话框 int_btn = QPushButton("整数输入对话框", self) int_btn.clicked.connect(self.int_dialog) int_btn.move(180, 10) # 浮点数对话框 double_btn = QPushButton("浮点数输入对话框", self) double_btn.clicked.connect(self.double_dialog) double_btn.move(10, 60) # 选项对话框 item_btn = QPushButton("选项对话框", self) item_btn.clicked.connect(self.item_dialog) item_btn.move(180, 60) # 调整窗口大小 self.resize(900, 500) # 窗口居中 self.center() # 窗口标题 self.setWindowTitle("对话框应用") # 显示窗口 self.show() # 字符串输入对话框 def text_dialog(self): name, ok = QInputDialog.getText(self, "姓名", "请输入你的姓名") if ok: print("你叫%s" % name) # 整数输入对话框 def int_dialog(self): age, ok = QInputDialog.getInt(self, "年龄", "请输入你的年龄") if ok: print("你输入了%d岁" % age) # 浮点数输入对话框 def double_dialog(self): stature, ok = QInputDialog.getDouble(self, "身高", "请输入你的身高(米)", 0, 0.1, 5, 4) if ok: print("你有%f米" % stature) # 列表选项对话框 def item_dialog(self): ls = ["男", "女"] gender, ok = QInputDialog.getItem(self, "性别", "请选择性别", ls) if ok: print("你是%s的" % gender) # 实现居中 def center(self): f = self.frameGeometry() c = QDesktopWidget().availableGeometry().center() f.moveCenter(c) self.move(f.topLeft()) if __name__ == "__main__": app = QApplication(sys.argv) w = Dialog() sys.exit(app.exec_())

运行程序之后,弹出的窗口如下:

pyqt5文本框显示输出内容(第6天28天学会PyQt5)(1)

好了,文本输入对话框的内容就说到这里了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

#python##程序员##好平台好讲师##桌面##热搜#

,