import sys
from PySide6 import QtCore,QtWidgets
from PySide6.QtCore import QAbstractTableModel,Qt
from PySide6.QtWidgets import QApplication, QMainWindow,QWidget
import pandas as pd
from ui_tableview import Ui_Form
class DataFrameModel(QAbstractTableModel):
def __init__(self, data):
super().__init__()
self._data = data
def rowCount(self, parent=None):
return self._data.shape[0]
def columnCount(self, parent=None):
return self._data.shape[1]
def data(self, index, role=Qt.DisplayRole):
if role == Qt.DisplayRole:
return str(self._data.iloc[index.row(), index.column()])
return None
class TableView_test(QWidget):
def __init__(self):
super().__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
self.__tableview()
def __tableview(self):
file = 'data.csv'
df = pd.read_csv(file)
model = DataFrameModel(df)
self.ui.tableView.setModel(model)
# self.ui.tableView.resizeColumnsToContents()
# 隐藏表头
self.ui.tableView.verticalHeader().hide() # 隐藏行号
self.ui.tableView.horizontalHeader().hide() # 隐藏列名
# 设置列宽
self.ui.tableView.setColumnWidth(0, 60) # 第一列宽度设置为60
# 设置行高
self.ui.tableView.setRowHeight(0, 26) # 第一行高度设置为26
# 交替颜色绘制背景
self.ui.tableView.setAlternatingRowColors(True)
# 设置字体大小 隐藏边框
self.ui.tableView.setStyleSheet("""
QTableView {
font-size: 14pt; /* 设置字体大小 */
border: none; /*隐藏边框 */
gridline-color: transparent; /* 移除网格线(可选) */
selection-background-color: lightblue; /* 示例:设置选择背景颜色 */
}
""")
if __name__ == "__main__":
app = QApplication(sys.argv)
w = TableView_test()
w.show()
sys.exit(app.exec())
标签:__,tableView,self,PySide6,QTableView,ui,使用,import,data
From: https://www.cnblogs.com/conpi/p/18577610