赞
踩
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的输入信息的获取方法,后续会随着工作需要,逐步进行补充,力争最后实现一个比较完整全面的查询手册性的资料。
- # 单行输入控件
- input = QLineEdit()
- # 单行输入控件信息获取
- text = input.text()
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()) # 在控制台打印文本框内容
- 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)
软件界面如下
获取信息的示例程序如下:
- 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)
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)
- # 获取儿子表格第i行第0列的数据
-
- cell0 = self.sonsTable.item(i,0).text()
更多关于表格控件的使用方法,请参阅:
PyQt5之表格控件QTableWidget使用详解 - 创建、布局、设置表格高度、宽度、表头等各种样式及表格数据的填写与改动的接收_pyqt5 qtablewidget-CSDN博客
- 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博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。