python pyqt5 qprinter 打印表格_PyQt5快速上手基础篇11-表格形式显示统计数据在textBrowser上...

本文介绍了如何使用Python的第三方库PrettyTable来格式化数据成表格形式,结合PyQt5在textBrowser组件上显示和打印统计数据。通过QT Designer创建UI,然后编写Python程序实现实时更新表格内容,展示了从UI设计到程序实现的完整过程。
摘要由CSDN通过智能技术生成

前言

本节我们学习使用Python的prettytable的用法,使用prettytable可以非常方便的使用表格形式打印统计数据。

一、基础知识

1.prettytable简介

PrettyTable是python中的一个第三方库,主要用来将数据格式化成表格形式显示。

2.安装

pip3 install PrettyTable

3.常用函数说明

bb2d1d51b9d96486f41fc3e73a12c1a9.png

二、实例

1. QT Designer设计UI

复制“ pyqt5快速上手基础篇8-菜单栏、工具栏和状态栏“中image文件夹内容和combox.ui,并修改combox.ui名字为chart.ui,用Qt Designer打开如下所示:

0530fde42c115f9eedba65c973eee549.png

注意串口combox没有任何数据显示,是因为我们没有使用Qt Designer为其添加item。

2 将*.ui转换为ui_chart.py

进入run.py目录,输入如下命令:

pyuic5 -o ui_chart.py chart.ui

3 编写python程序

# encoding=utf-8import sysimport PyQt5.QtWidgets as qwimport PyQt5.QtCore as qcimport prettytable as ptimport ui_chart class myForm(qw.QMainWindow, ui_chart.Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) #init gui self.statusbar.showMessage("status:ok") self.pushButton.clicked.connect(self.btn_test_cb)  def btn_test_cb(self):        tb = pt.PrettyTable()        tb.field_names = ["姓名", "语文", "数学", "英语"]        tb.add_row(["王二", 80, 90, 70])        tb.add_row(["李三", 85, 95, 80])        tb.add_row(["赵四", 90, 75, 86]) print(tb)        text_data = str(tb) self.textBrowser.insertPlainText(text_data) self.textBrowser.insertPlainText("") self.textBrowser.insertPlainText("clear_rows后数据如下")        tb.clear_rows() print(tb)        text_data = str(tb) self.textBrowser.insertPlainText(text_data) self.textBrowser.insertPlainText("重新add_row后数据如下")        tb.add_row(["刘无", 85, 95, 80])        tb.add_row(["杨六", 90, 75, 86]) print(tb)        text_data = str(tb) self.textBrowser.insertPlainText(text_data) self.textBrowser.insertPlainText("clear后数据如下")        tb.clear() print(tb)        text_data = str(tb) self.textBrowser.insertPlainText(text_data)if __name__ == '__main__':    app = qw.QApplication(sys.argv)    w1 = myForm()    w1.show()    app.exec_()

上述程序实现,当点击发送按钮的时候,首先初始化一个表格数据,显示在textBrowser上,然后调用clear_rows()清楚表格数据,保留表格标题,然后重新添加数据并显示,最后调用clear()清楚表格,销毁标题和数据内容。

三、运行

进入文件目录,输入python3 run.py,即可弹出上述用QT Designer设计出来的MainWindow页面。

a4c40a75a284f05b42f44d55c57e9784.png

到此,我们实现了在pyqt上的textBrower上显示表格形式数据。

四、结语

(1) PrettyTable

注意PrettyTable是Python的一个第三方包,所以pyqt5支持,直接在控制台写纯python脚本也是可以的。

作者:小驿

寄语:人的一生应该记住这几个字:不要怕、不要悔!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的openpyxl库来读取和修改Excel文件,并使用PyQt5来创建GUI界面。下面是一个简单的示例代码,可以打开Excel文件并显示指定列的数据,并允许在指定行添加新的数据。 ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton, QLineEdit from openpyxl import load_workbook class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建表格和按钮 self.table = QTableWidget(self) self.btn_add = QPushButton('Add', self) self.edit_row = QLineEdit(self) # 设置表格的行数和列数 self.table.setRowCount(5) self.table.setColumnCount(2) # 设置表头 self.table.setHorizontalHeaderLabels(['Name', 'Age']) # 加载Excel文件 self.workbook = load_workbook('data.xlsx') self.sheet = self.workbook.active # 显示Excel中指定列的数据 for i, row in enumerate(self.sheet.iter_rows(values_only=True)): name = QTableWidgetItem(row[0]) age = QTableWidgetItem(str(row[1])) self.table.setItem(i, 0, name) self.table.setItem(i, 1, age) # 添加按钮和编辑框,并设置布局 self.btn_add.move(50, 250) self.edit_row.move(150, 250) self.setCentralWidget(self.table) self.setGeometry(100, 100, 300, 300) self.setWindowTitle('Excel Viewer') # 绑定按钮的点击事件 self.btn_add.clicked.connect(self.add_row) def add_row(self): # 获取编辑框中的文本和当前行数 row = int(self.edit_row.text()) name = QTableWidgetItem('New Person') age = QTableWidgetItem('0') # 在指定行添加新的数据 self.table.setItem(row, 0, name) self.table.setItem(row, 1, age) self.sheet.cell(row=row+1, column=1, value='New Person') self.sheet.cell(row=row+1, column=2, value=0) self.workbook.save('data.xlsx') if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 在这个例子中,我们首先创建一个`QTableWidget`对象来显示表格数据,并添加一个`QPushButton`和一个`QLineEdit`来添加新的数据。然后,我们使用`openpyxl`库来加载Excel文件并显示指定列的数据。最后,我们将按钮的点击事件绑定到`add_row`函数,该函数会在指定行添加新的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值