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

# 单行输入控件
input = QLineEdit()
# 单行输入控件信息获取
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: 撤销可用触发

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

二、复合选择框

1. QComboBox

education_Label = QLabel('学历')

self.educationComboBox = QComboBox()
self.educationComboBox.addItem("无")
self.educationComboBox.addItem("小学")
self.educationComboBox.addItem("初中")
self.educationComboBox.addItem("高中")
self.educationComboBox.addItem("大专")
self.educationComboBox.addItem("本科")
self.educationComboBox.addItem("硕士")
self.educationComboBox.addItem("博士")
self.educationComboBox.addItem("博士后")
# 获取选项文本
education_level = self.educationComboBox.currentText() 
# 获取选项序号
education_level_idx = self.educationComboBox.currentIndex()

# 设置comboBox为可编辑
self.educationComboBox.setEditable(True)
# 定义槽函数
def get_selected_value(item_value):
    selected_value = item_valu
# 连接信号槽获取输入内容
self.educationComboBox.activated[str].connect(get_selected_value)

2. QCheckBox

(1)获取checkbox信息的方法

软件界面如下

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

ChkBox1 = '无' if self.familyCheckBoxNone.isChecked() else None
ChkBox2 = '恶性肿瘤' if self.familyCheckBoxLiverBenignNodules.isChecked() else None
ChkBox3 = '糖尿病' if self.familyCheckBoxCancer.isChecked() else None
ChkBox4 = '痛风' if self.familyCheckBoxNone.isChecked() else None
ChkBox5 = '肝炎' if self.familyCheckBoxLiverBenignNodules.isChecked() else None
ChkBox6 = '肾脏病' if self.familyCheckBoxCancer.isChecked() else None
ChkBox7 = '心脑血管疾病(高血压、血脂异常、冠心病、脑卒中等)' if self.familyCheckBoxNone.isChecked() else None

self.information['家族(直系血亲、兄弟姊妹)信息'] = [ChkBox1,ChkBox2,ChkBox3,ChkBox4,ChkBox5,ChkBox6,ChkBox7]

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)

方式一:

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

方式二:

messageBox = QMessageBox()
messageBox.setWindowTitle(' ')
messageBox.setText('请选择性别!')
messageBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
buttonY = messageBox.button(QMessageBox.Yes)
buttonY.setText('男性')
buttonN = messageBox.button(QMessageBox.No)
buttonN.setText('女性')
messageBox.exec_()
if messageBox.clickedButton() == buttonY:
   self.information['性别'] = '男'
   self.stackedWidget.setCurrentIndex(3)
elif messageBox.clickedButton() == buttonN:
    self.information['性别'] = '女'
    self.stackedWidget.setCurrentIndex(4)

四、复杂控件

(一)QTableWidget

# 获取儿子表格第i行第0列的数据

cell0 = self.sonsTable.item(i,0).text()

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

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

(二)QTreeWidget

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

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

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PyQt5Python语言中一个非常流行的GUI编程工具包,其中包含了许多常用的控件方法。下面是一些常见控件方法大全: 1. QLabel控件方法: - setText():设置标签文本内容。 - setAlignment():设置文本的对齐方式。 - setPixmap():设置标签的图片。 2. QPushButton控件方法: - setText():设置按钮上的文本。 - setIcon():设置按钮上的图标。 - setShortcut():设置按钮的快捷键。 3. QRadioButton和QCheckBox控件方法: - setText():设置选项的文本。 - isChecked():判断是否被选中。 - setChecked():设置是否选中。 4. QComboBox控件方法: - addItem():在下拉列表中添加项。 - setCurrentIndex():设置当前选中的项。 - currentText():获取当前选中的文本。 5. QLineEdit控件方法: - setText():设置文本内容。 - text():获取文本内容。 - setValidator():设置输入的验证器。 6. QProgressBar控件方法: - setRange():设置进度条的范围。 - setValue():设置进度条的当前值。 - reset():重置进度条。 7. QSlider和QSpinBox控件方法: - setValue():设置当前的值。 - value():获取当前的值。 - setRange():设置值的范围。 8. QTextEdit和QPlainTextEdit控件方法: - setText():设置文本内容。 - toPlainText():获取文本内容。 - setReadOnly():设置只读模式。 这只是一些常见的控件方法PyQt5还有很多其他控件方法。希望这些方法能帮助您更好地使用PyQt5进行GUI编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃饭的家伙事儿

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值