龙空技术网

实战PyQt5: 060-输入对话框QInputDialog

爱好史地的coder 265

前言:

现时姐妹们对“java输入文本框”大致比较讲究,咱们都想要知道一些“java输入文本框”的相关内容。那么小编也在网摘上收集了一些关于“java输入文本框””的相关资讯,希望小伙伴们能喜欢,大家快快来了解一下吧!

QInputDialog简介

在GUI应用中,经常有一些简单的输入信息需要交互,这时候可以使用QInputDialog来快速完成我们的工作,而不必创建一个新的对话框来实现。

QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(ok和cancel)组成。当用户单击ok或enter键后,在父窗口可以收集通过QInputDialog控件输入的信息。在QInpuTDialog控件中可以输入数字,字符串或列表中的选项。

QInputDialog常用方法有:

getInt(): 从控件中获得标准整数输入;getDouble(): 从控件中获得标准浮点数输入;getText(): 从控件中获得标准字符串的输入;getItem(): 从控件中获得列表里的选项输入;getMultiLineText(): 从控件中获得多行文本输入。

QInputDialog常用信号:

textValueChanged: 当输入文本发生改变时,发射该信号;textValueSelected: 当输入文本被选中时,发射该信号;intValueChanged: 当输入的整数值发生改变时,发射该信号;intValueSelected: 当选中整数值时,发射该信号;doubleValueChanged: 当输入的浮点数发生改变时,发生该信号;doubleValueSelected: 当选中浮点数值时,发射该信号。

QInputDialog类继承关系:

测试QInputDialog

创建文件qinputdialog.py, 分别测试QInputDialog的四个方法:getItem, getText, getInt和getDouble。完整代码如下:

import sysfrom PyQt5 import QtCore, QtGui, QtWidgets#from PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import (QApplication, QWidget, QInputDialog, QFormLayout,                             QPushButton, QLineEdit) class DemoInputDialog(QWidget):    def __init__(self, parent=None):        super(DemoInputDialog, self).__init__(parent)                    # 设置窗口标题        self.setWindowTitle('实战PyQt5: QInputDialog Demo!')              # 设置窗口大小        self.resize(320, 240)              self.initUi()            def initUi(self):        #创建一个表单布局        mainLayout = QFormLayout(self)        #设置内部控件之间的间隔        mainLayout.setSpacing(16)                min_width = 120                btnGetSel = QPushButton('列表选择输入对话框', self)        btnGetSel.setMinimumWidth(min_width)        btnGetSel.clicked.connect(self.onGetSelItem)        self.infoSel = QLineEdit(self)        self.infoSel.setReadOnly(True)        mainLayout.addRow(btnGetSel, self.infoSel)                btnGetTxt = QPushButton('字符串输入对话框', self)        btnGetTxt.setMinimumWidth(min_width)        btnGetTxt.clicked.connect(self.onGetText)        self.infoTxt = QLineEdit(self)        self.infoTxt.setReadOnly(True)        mainLayout.addRow(btnGetTxt, self.infoTxt)                btnGetInt = QPushButton('整数输入对话框')        btnGetInt.setMinimumWidth(min_width)        btnGetInt.clicked.connect(self.onGetInt)         self.infoInt = QLineEdit(self)        self.infoInt.setReadOnly(True)        mainLayout.addRow(btnGetInt, self.infoInt)                btnGetDbl = QPushButton('浮点数输入对话框')        btnGetDbl.setMinimumWidth(min_width)        btnGetDbl.clicked.connect(self.onGetDouble)        self.infoDbl = QLineEdit(self)        self.infoDbl.setReadOnly(True)        mainLayout.addRow(btnGetDbl, self.infoDbl)                self.setLayout(mainLayout)            def onGetSelItem(self):        #创建元组并并定义初始值        items = ('C', 'C++', 'C#', 'Java', 'Java Script', 'Go', 'Python')        #获取item输入的值,以及ok键的点击与否(True 或False)        item,ok=QInputDialog.getItem(self,"选择输入对话框",'语言列表',items,0,False)        if ok and item:            #满足条件时,设置单行文本框的文本            self.infoSel.setText(item)                def onGetText(self):        text,ok=QInputDialog.getText(self,'文本输入对话框','输入姓名:')        if ok:            self.infoTxt.setText(str(text))                def onGetInt(self):        num,ok=QInputDialog.getInt(self,'整数输入对话框','输入整数')        if ok:            self.infoInt.setText(str(num))                def onGetDouble(self):        value,ok=QInputDialog.getDouble(self,'浮点数输入对话框','输入浮点数')        if ok:            self.infoDbl.setText(str(value))            if __name__ == '__main__':    app = QApplication(sys.argv)    window = DemoInputDialog()    window.show()    sys.exit(app.exec())

运行结果如下图:

测试QInputDialog

本文知识点在一些简单的输入信息交互场景下使用QInputDialog可提高开发效率;QInputDialog提供了几种常用的信息输入方式;表单QFormLayout的运用;设置按钮的最小宽度,以对齐按钮的排列。

喜欢本文内容就关注,收藏,点赞,评论和转发。

标签: #java输入文本框 #java文本输入框和确定按钮在哪找