1. 文章内容会在以后持续增加
2. 文中涉及的数据,会在文末提供下载链接
1. 简单实例
1.1 最终效果:
1.2 代码
from PyQt5 import QtWidgets
import pandas as pd
import sys
class TableExample(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.init_data()
self.init_ui()
def init_data(self):
file_path = r'./002410_pe.csv'
df = pd.read_csv(file_path,encoding='utf-8')
df00 = df.loc[:,['tradeDate','closePrice','pe','close_log','pe_log']]
self.table_header_map = {'tradeDate':'日期','closePrice':'收盘价','pe':'简单收益率','close_log':'对数收盘价','pe_log':'对数收益率'}
self.table_data = df00.values.tolist()
pass
def init_ui(self):
self.setWindowTitle('QTableWidget例子')
self.setMinimumWidth(1000)
self.setMinimumHeight(600)
self.content_table = QtWidgets.QTableWidget()
self.content_table.setColumnCount(len(self.table_header_map.values()))
self.content_table.setHorizontalHeaderLabels(list(self.table_header_map.values()))
self.content_table.setRowCount(len(self.table_data))
for row_i,row in enumerate(self.table_data):
for col_i,col in enumerate(list(self.table_header_map.values())):
one_item = QtWidgets.QTableWidgetItem(str(row[col_i]))
self.content_table.setItem(row_i,col_i,one_item)
self.content_table.resizeColumnsToContents()
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.content_table)
self.setLayout(layout)
pass
pass
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
temp_w = TableExample()
temp_w.show()
sys.exit(app.exec_())
pass
PS:
链接:https://pan.baidu.com/s/1ccwfPVGgEaqr98p0EO466w
提取码:j9s0