当我们需要在Python GUI应用程序中要求用户输入信息时,可以使用输入对话框(Input Dialog)。可以使用PyQt4或PySide库中的QInputDialog模块来创建输入对话框。以下是步骤:
- 导入所需模块
首先,需要导入PyQt4或PySide库的QtCore和QtGui模块。此外,还需要导入QInputDialog类。
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtGui import QInputDialog
- 创建对话框
使用以下代码将QInputDialog类的实例化对象分配给变量:
value, ok = QInputDialog.getText(None, "标题", "请输入一个字符串:")
这里的第一个参数是一个QWidget对象,如果不需要指定父级,则将其设置为None。第二个参数是对话框的标题,第三个参数是输入对话框中显示的消息。
我们还可以使用以下代码来从用户那里请求数字:
value, ok = QInputDialog.getInt(None, "标题", "请输入一个整数:")
要求用户输入单选按钮或复选框:
items = ("选项1", "选项2", "选项3")
item, ok = QInputDialog.getItem(None, "标题", "请选择一个选项:", items, 0, False)
最后一个参数定义了弹出对话框时应选择的默认项目的索引。
- 处理用户响应
用户的响应是一个元素(value)和一个布尔值(ok)。如果用户单击了“取消”按钮,则布尔值设置为False。如果用户单击了“确认”按钮,则布尔值将设置为True。
if ok:
print "用户输入了:", value
else:
print "用户取消了输入"
示例1:请求用户输入字符串并在主窗口标签上显示它
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtGui import QInputDialog
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
text, ok = QInputDialog.getText(self, "输入字符串", "请输入字符串:")
if ok:
self.setWindowTitle(text)
label = QLabel(text, self)
label.move(10, 10)
self.resize(label.sizeHint())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
示例2:请求用户输入数字并在主窗口标签上显示它
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtGui import QInputDialog
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
number, ok = QInputDialog.getInt(self, "输入数字", "请输入一个整数:")
if ok:
self.setWindowTitle(str(number))
label = QLabel(str(number), self)
label.move(10, 10)
self.resize(label.sizeHint())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于PyQt4和PySide实现输入对话框效果 - Python技术站