PyQt4中的对话框
对话窗口和对话框是现代GUI应用程序必不可少的一部分。生活中“对话”被定义为发生在两人或更多人之间的会话。而在计算机世界,“对话”则时人与应用程序之间的“会话”。人及对话的形式有在输入框内键入内容,修改已有的数据,改变应用程序的设置等。对话框在人机交互中扮演着非常重要的角色。
从本质上说,只存在两种形式的对话框:预定义对话框和定制对话框。
预定义对话框
QInputDialog 输入对话框
QInputDialog提供了一种获取用户单值数据的简洁形式。它接受的数据有字符串,数字和列表中的一项数据等。
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class InputDialog(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self) self.setGeometry(300, 300, 350, 80) self.setWindowTitle('InputDialog') self.button = QtGui.QPushButton('Dialog', self) self.button.setFocusPolicy(QtCore.Qt.NoFocus) self.button.move(20, 20) self.connect(self.button, QtCore.SIGNAL('clicked()'), self.showDialog) self.setFocus() self.label = QtGui.QLineEdit(self) self.label.move(130, 20) def showDialog(self): text, ok = QtGui.QInputDialog.getText(self, 'Input Dialog', 'Enter your name:') if ok: self.label.setText(unicode(text)) app = QtGui.QApplication(sys.argv) icon = InputDialog() icon.show() sys.exit(app.exec_())
效果:
本示例包含一个按钮和一个行编辑部件。单击按钮会弹出输入对话框,以获取用户输入的文本数据。该文本数据将会显示在行编辑部件中。
text, ok = QtGui.QInputDialog.getText(self, 'Input Dialog',
'Enter your name:')
该语句用来显示一个输入对话框。第一个参数'Input Dialog'是对话框的标题。第二个参数'Enter your name'将作为提示信息显示在对话框中。该对话框将返回用户输入的内容和一个布尔值,如果用户单击OK按钮确认输入,则返回的布尔值为true,否则返回的布尔值为false。