代码
python">from PySide6.QtWidgets import QTableWidget QTableWidgetItem
def tableInit(self):
self.tableWidget
self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
module_keyWord = readJsonToDict(keyWordFileDir + module_name) #读取模块关键字json字典数据
self.tableWidget.setRowCount(len(module_keyWord.items()) + 1) #用字典长度设置表格行数,+1表上表示除去表头
self.tableWidget.setColumnCount(3)
self.tableWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers) # 禁止编辑单元格
self.tableWidget.setAlternatingRowColors(True) # 使表格颜色交错显示
# 设置表头
item = QTableWidgetItem("选择")
item.setBackground(QBrush(QColor("cyan"))) #设置单元格背景颜色
item.setFont
# item.setTextAlignment(Qt.AlignmentFlag(20))
self.tableWidget.setItem(0, 0, item)
item = QTableWidgetItem("log关键字")
item.setBackground(QBrush(QColor("cyan")))
self.tableWidget.setItem(0, 1, item)
item = QTableWidgetItem("描述")
item.setBackground(QBrush(QColor("cyan")))
self.tableWidget.setItem(0, 2, item)
# 设置字体(字体,字号,颜色)
# Item.setFont(QFont('Times', 14, QFont.Black))
# # 另外一种方法设置颜色(该为红色)
# Item.setForeground(QBrush(QColor(255, 0, 0)))
# tableWidget.setItem(0, 0, Item)
# 填充表格数据
row = 1
col = 1
print('更新表格关键字文件:',keyWordFileDir + module_name)
for name, score in module_keyWord.items():
# 创建QCheckBox
checkBox = QCheckBox()
# 将QWidget设置为表格的单元格的QWidget
self.tableWidget.setCellWidget(row, 0, checkBox)
checkBox.stateChanged.connect(lambda state, row=row: self.on_checkbox_state_changed(row))
item = QTableWidgetItem(name)
self.tableWidget.setItem(row, col, item)
item = QTableWidgetItem(score)
self.tableWidget.setItem(row, col+1, item)
row += 1
self.tableWidget.resizeColumnsToContents() #设置列宽跟随内容改变
代码功能解释
这段代码实现了表格的初始化和数据填充。
具体功能如下:
1. **设置表格选择行为**:设置为按行选择。
2. **读取JSON文件**:从指定路径读取模块关键字的JSON文件并转换为字典。
3. **配置表格属性**:设置表格的行数、列数、禁止编辑单元格、使表格颜色交错显示。
4. **设置表头**:创建并设置表头的三个单元格(选择、log关键字、描述),并设置背景颜色。
5. **填充表格数据**:遍历字典,为每一行添加复选框、关键字和描述,并连接复选框的状态变化事件。
控制流图
解释
- A: 开始执行
tableInit
方法。 - B: 设置表格的选择行为为按行选择。
- C: 调用
readJsonToDict
方法读取 JSON 文件并转换为字典。 - D: 配置表格的基本属性,如行数、列数、编辑权限等。
- E: 设置表头的三个单元格,并设置背景颜色。
- F: 初始化行号和列号。
- G: 判断是否遍历完字典中的所有项。
- H: 创建复选框并将其添加到表格中。
- I: 将关键字和描述添加到表格中。
- J: 增加行号以便处理下一行。
- K: 当遍历完成后,调整表格的列宽以适应内容。
- L: 结束
tableInit
方法的执行。