pyqt5获取输入框内容_PyQt5系列教程(8):标准输入对话框

上期我们介绍了PyQt5软件界面的搭建,主要涉及到了以下几个知识点:

状态栏

菜单

工具栏

今天我们主要讲解一下标准输入对话框的知识。

对话框窗口或对话框是大多数现代GUI应用程序中不可或缺的一部分。在计算机应用程序中,一个对话框是一个用于“与应用程序”通话的窗口。对话框用于输入数据,修改数据,更改应用程序设置等。因为对话框涉及的内容比较多,我们计划分成几个章节来讲解,今天主要介绍输入对话框。

QInputDialog提供了一个简单的便利对话框,可以从用户获取单个值。 输入值可以是列表中的字符串,数字或项目。我们会分别通过一个例子来看看一下。效果如下:

首先看下QInputDialog包含的几个方法:

getDouble(QWidget, str, str, value: float = 0, min: float = -2147483647, max: float = 2147483647, decimals: int = 1, flags: Union[Qt.WindowFlags,Qt.WindowType]=Qt.WindowFlags())->Tuple[float,bool]

getInt(QWidget, str, str, value: int = 0, min: int = -2147483647, max: int = 2147483647, step: int = 1, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) -> Tuple[int, bool]

getItem(QWidget, str, str, Iterable[str], current:int=0,editable:bool=True,flags:Union[Qt.WindowFlags,Qt.WindowType]=Qt.WindowFlags(),inputMethodHints:Union[Qt.InputMethodHints,Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]

getMultiLineText(QWidget, str, str, text: str = '', flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone)-> Tuple[str, bool]

getText(QWidget, str, str, echo: QLineEdit.EchoMode = QLineEdit.Normal,text: str = '', flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(),inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]

接着来看看具体的实现例子:

#coding=utf-8

from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLabel, QInputDialog, QTextBrowser)

import sys

class Example(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def initUI(self):

self.setGeometry(500,500,500,550)

self.setWindowTitle('关注微信公众号:学点编程吧--标准输入对话框')

self.lb1 = QLabel('姓名:',self)

self.lb1.move(20,20)

self.lb2 = QLabel('年龄:',self)

self.lb2.move(20,80)

self.lb3 = QLabel('性别:',self)

self.lb3.move(20,140)

self.lb4 = QLabel('身高(cm):',self)

self.lb4.move(20,200)

self.lb5 = QLabel('基本信息:',self)

self.lb5.move(20,260)

self.lb6 = QLabel('学点编程',self)

self.lb6.move(80,20)

self.lb7 = QLabel('18',self)

self.lb7.move(80,80)

self.lb8 = QLabel('男',self)

self.lb8.move(80,140)

self.lb9 = QLabel('175',self)

self.lb9.move(120,200)

self.tb = QTextBrowser(self)

self.tb.move(20,320)

self.bt1 = QPushButton('修改姓名',self)

self.bt1.move(200,20)

self.bt2 = QPushButton('修改年龄',self)

self.bt2.move(200,80)

self.bt3 = QPushButton('修改性别',self)

self.bt3.move(200,140)

self.bt4 = QPushButton('修改身高',self)

self.bt4.move(200,200)

self.bt5 = QPushButton('修改信息',self)

self.bt5.move(200,260)

self.show()

self.bt1.clicked.connect(self.showDialog)

self.bt2.clicked.connect(self.showDialog)

self.bt3.clicked.connect(self.showDialog)

self.bt4.clicked.connect(self.showDialog)

self.bt5.clicked.connect(self.showDialog)

def showDialog(self):

sender = self.sender()

sex = ['男','女']

if sender == self.bt1:

text, ok = QInputDialog.getText(self, '修改姓名', '请输入姓名:')

if ok:

self.lb6.setText(text)

elif sender == self.bt2:

text, ok = QInputDialog.getInt(self, '修改年龄', '请输入年龄:', min = 1)

if ok:

self.lb7.setText(str(text))

elif sender == self.bt3:

text, ok = QInputDialog.getItem(self, '修改性别', '请选择性别:',sex)

if ok:

self.lb8.setText(text)

elif sender == self.bt4:

text, ok = QInputDialog.getDouble(self, '修改身高', '请输入身高:', min = 1.0)

if ok:

self.lb9.setText(str(text))

elif sender == self.bt5:

text, ok = QInputDialog.getMultiLineText(self, '修改信息', '请输入个人信息:')

if ok:

self.tb.setText(text)

if __name__ == '__main__':

app = QApplication(sys.argv)

ex = Example()

sys.exit(app.exec_())

该示例具有按钮和标签和文本浏览器。 通过按钮显示输入对话框以便获取值。 输入的文本将显示在窗口的标签和文本浏览器中。

self.bt1.clicked.connect(self.showDialog)

self.bt2.clicked.connect(self.showDialog)

self.bt3.clicked.connect(self.showDialog)

self.bt4.clicked.connect(self.showDialog)

self.bt5.clicked.connect(self.showDialog)

单击按钮连接对应的槽函数。

if sender == self.bt1:

text, ok = QInputDialog.getText(self, '修改姓名', '请输入姓名:')

若我们按下按钮1,此时显示输入对话框。 第一个字符串是一个对话标题,第二个是对话框中的一个消息。 对话框返回输入的文本和布尔值。 如果我们点击Ok按钮,布尔值为true。

if ok:

self.lb6.setText(text)

如果我们按下ok键,则标签6的text值是从对话框接收的文本。效果如下:

其他的函数也是类似的。但是提供的功能不一样。

text, ok = QInputDialog.getInt(self, '修改年龄', '请输入年龄:', min = 1)

可以输入整数,最小值、最大值可以自己设定,步长也可以自己设定。效果如下:

text, ok = QInputDialog.getItem(self, '修改性别', '请选择性别:',sex)

可以输入选择项,待选放到列表中,这里的列表就是sex。效果如下:

text, ok = QInputDialog.getDouble(self, '修改身高', '请输入身高:', min = 1.0)

可以输入浮点型小数,最小值、最大值可以自己设定。效果如下:

text, ok = QInputDialog.getMultiLineText(self, '修改信息', '请输入个人信息:')

可以输入富文本,在里面增加一些格式信息。效果如下:

我们总结一下今天的内容:

标准输入框的五种使用

ok,今天就到这里,我们下期再谈谈其他的对话框,对话框本身的内容就比较多,会多分几期讲解。

如果你想要本次教程中的相关源码,请关注微信公众号:学点编程吧,发送pyqt58,会自动得到相应的百度网盘下载链接。

在实操中遇到问题?欢迎来讨论。学点编程吧-百度贴吧--计算机程序学习的园地!--学点编程吧,让我们的生活更简单,更高效!能用计算机解决的事情,尽量不要让人解决。如果你在学习当中有任何疑问、学习心得、职业发展等内容欢迎在贴吧中分享,让我​tieba.baidu.com

你可能感兴趣的:(pyqt5获取输入框内容)