对话框是一种特殊的视窗, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。显示信息已经说过,接下来说一下文本输入对话框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_())
运行程序之后,弹出的窗口如下:
好了,文本输入对话框的内容就说到这里了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
?
?
|