当前位置:   article > 正文

PyQt5之输入信息与获取-各种控件输入信息的获取方法总结_pyqt5 获取输入文本

pyqt5 获取输入文本

PyQt5是由一系列Python模块组成,有超过620个类,6000个函数和方法,主要模块:

QtCore:包含了核心的非 GUI 的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime 类文件、进程与线程一起使用。
QtGui:包含了窗口系统、事件处理、2D 图像、基本绘画、字体和文字类。
QtWidgets:包含了一系列创建桌面应用的 UI 元素。
QtMultimedia:包含了处理多媒体的内容和调用摄像头 API 的类。
QtBluetooth:包含了查找和连接蓝牙的类。
QtNetwork:包含了网络编程的类,这些工具能让 TCP/IP 和 UDP 开发变得更加方便和可靠。
QtPositioning:包含了定位的类,可以使用卫星、WiFi 甚至文本。
Enginio:包含了通过客户端进入和管理 Qt Cloud 的类。
QtWebSockets:包含了 WebSocket 协议的类。
QtWebKit:包含了一个基 WebKit2 的 web 浏览器。
QtWebKitWidgets:包含了基于 QtWidgets 的 WebKit1 的类。
QtXml:包含了处理 xml 的类,提供了 SAX 和 DOM API 的工具。
QtSvg:提供了显示 SVG 内容的类,Scalable Vector Graphics (SVG) 是一种是一种基于可扩展标记语言 (XML),用于描述二维矢量图形的图形格式(这句话来自于维基百科)。
QtSql:提供了处理数据库的工具。
QtTest:提供了测试 PyQt5 应用的工具。


这些类中数据有的需要输入,有的需要输出,这里,我简单列举了一些常用widget的输入信息的获取方法,后续会随着工作需要,逐步进行补充,力争最后实现一个比较完整全面的查询手册性的资料。

一、简单文本输入类

1. QLineEdit

  1. # 单行输入控件
  2. input = QLineEdit()
  3. # 单行输入控件信息获取
  4. text = input.text()

2. QPlainTextEdit

QPlaintTextEdit常用方法:

    setPlainText(): 设置多行文本框的内容;
    insertPlainText(): 插入普通文本;
    appendPlainText(): 添加普通文本;
    appendHtml(): 添加HTML文本内容;
    setReadOnly(): 设置成只读模式;
    isReadOnly(): 是否是只读模式;
    setLineWrapMode():设置换行模式,取值为(QPlainTextEdit.NoWrap:不自动换行(缺省值),QPlainTextEdit.WidgetWidth: 根据文本框的宽度自动换行.);
    lineWrapMode(): 换行模式

QPlaintTextEdit中的常用信号:

    textChanged: 文本内容发生改变时触发;
    selectionChanged:选中内容发生改变时触发;
    cursorPositionChanged: 光标位置发生改变触发;
    copyAvailable:复制可用时触发
    redoAvailable: 重做可用触发
    undoAvailable: 撤销可用触发

  1. # 获取数据
  2. self.plain_text_edit = QPlainTextEdit()
  3. self.plain_text_edit.setPlainText('内容')
  4. print(self.plain_text_edit.toPlainText()) # 在控制台打印文本框内容

二、复合选择框

1. QComboBox

  1. education_Label = QLabel('学历')
  2. self.educationComboBox = QComboBox()
  3. self.educationComboBox.addItem("无")
  4. self.educationComboBox.addItem("小学")
  5. self.educationComboBox.addItem("初中")
  6. self.educationComboBox.addItem("高中")
  7. self.educationComboBox.addItem("大专")
  8. self.educationComboBox.addItem("本科")
  9. self.educationComboBox.addItem("硕士")
  10. self.educationComboBox.addItem("博士")
  11. self.educationComboBox.addItem("博士后")
  12. # 获取选项文本
  13. education_level = self.educationComboBox.currentText()
  14. # 获取选项序号
  15. education_level_idx = self.educationComboBox.currentIndex()
  16. # 设置comboBox为可编辑
  17. self.educationComboBox.setEditable(True)
  18. # 定义槽函数
  19. def get_selected_value(item_value):
  20. selected_value = item_valu
  21. # 连接信号槽获取输入内容
  22. self.educationComboBox.activated[str].connect(get_selected_value)

2. QCheckBox

(1)获取checkbox信息的方法

软件界面如下

获取信息的示例程序如下:

  1. ChkBox1 = '无' if self.familyCheckBoxNone.isChecked() else None
  2. ChkBox2 = '恶性肿瘤' if self.familyCheckBoxLiverBenignNodules.isChecked() else None
  3. ChkBox3 = '糖尿病' if self.familyCheckBoxCancer.isChecked() else None
  4. ChkBox4 = '痛风' if self.familyCheckBoxNone.isChecked() else None
  5. ChkBox5 = '肝炎' if self.familyCheckBoxLiverBenignNodules.isChecked() else None
  6. ChkBox6 = '肾脏病' if self.familyCheckBoxCancer.isChecked() else None
  7. ChkBox7 = '心脑血管疾病(高血压、血脂异常、冠心病、脑卒中等)' if self.familyCheckBoxNone.isChecked() else None
  8. self.information['家族(直系血亲、兄弟姊妹)信息'] = [ChkBox1,ChkBox2,ChkBox3,ChkBox4,ChkBox5,ChkBox6,ChkBox7]
  9. print(self.information)

(2)设置checkbox的方法:

setChecked 和 setCheckState 是 QCheckBox 的两个方法,它们都用于设置 QCheckBox 的状态,但是有一些区别。
1、setChecked 方法

setChecked 方法用于设置 QCheckBox 的状态为选中(True)或未选中(False)。例如:

    checkbox.setChecked(True) # 设置为选中状态
    checkbox.setChecked(False) # 设置为未选中状态

2、setCheckState方法

 setCheckState 方法用于设置 QCheckBox 的状态为选中(Qt.Checked)、半选中( Qt.PartiallyChecked)或未选中(Qt.Unchecked)。例如:

    checkbox.setCheckState(Qt.PartiallyChecked) # 设置为半选中状态
    checkbox.setCheckState(Qt.Checked) # 设置为选中状态
    checkbox.setCheckState(Qt.Unchecked) # 设置为未选中状态

注:

在调用setCheckState方法前需要启用三态模式,即:

checkbox.setTristate(True)  # 启用三态模式


三、警告框

(一)警告框的使用与汉化

前言

QMessageBox是一种通用的弹出框对话框;包含:提示、警告、错误、咨询、关于等对话框;只是显示图标不同,其他功能类似;

QMessageBox类常用方法如下:

按钮类型:

常用对话框demo

直接调用 QMessageBox 上的 information, warning 等方法, 生成的按钮都是英文的Yes, No 等.

QMessageBox.information(self, ' ', '执行完成', QMessageBox.Yes | QMessageBox.No)

方式一:

  1. messageBox = QMessageBox()
  2. messageBox.setWindowTitle(' ')
  3. messageBox.setText('执行成功')
  4. messageBox.addButton(QPushButton('确定'), QMessageBox.YesRole)
  5. messageBox.exec_()

方式二:

  1. messageBox = QMessageBox()
  2. messageBox.setWindowTitle(' ')
  3. messageBox.setText('请选择性别!')
  4. messageBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
  5. buttonY = messageBox.button(QMessageBox.Yes)
  6. buttonY.setText('男性')
  7. buttonN = messageBox.button(QMessageBox.No)
  8. buttonN.setText('女性')
  9. messageBox.exec_()
  10. if messageBox.clickedButton() == buttonY:
  11. self.information['性别'] = '男'
  12. self.stackedWidget.setCurrentIndex(3)
  13. elif messageBox.clickedButton() == buttonN:
  14. self.information['性别'] = '女'
  15. self.stackedWidget.setCurrentIndex(4)

四、复杂控件

(一)QTableWidget

  1. # 获取儿子表格第i行第0列的数据
  2. cell0 = self.sonsTable.item(i,0).text()

更多关于表格控件的使用方法,请参阅:

PyQt5之表格控件QTableWidget使用详解 - 创建、布局、设置表格高度、宽度、表头等各种样式及表格数据的填写与改动的接收_pyqt5 qtablewidget-CSDN博客

(二)QTreeWidget

  1. child_item = root_item.child(i)
  2. for i in range(n): # n 为树的条目(item)具有的字段数,比如一个树每个条目有姓名、出生年月、序号3个字段,n就等于3
  3. print(child_item.text(i))

更详细的获取树形控件信息的方法,请参阅:PyQt5之树形控件QTreeWidget使用详解 - 创建、增删节点、遍历、美化等常用功能案例解析_pyqt5树控件-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/897362
推荐阅读
相关标签
  

闽ICP备14008679号