qtableWidget复杂界面效果及添加、删除处理
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QAbstractItemView, QMessageBox
def createTableWidget(self):
# 创建QTableWidget实例
table = QTableWidget(self)
table.setRowCount(4) # 设置行数为4
table.setColumnCount(2) # 设置列数为2
table.setHorizontalHeaderLabels(['标题1', '标题2']) # 设置表头
table.setSelectionBehavior(QAbstractItemView.SelectRows) # 设置选择行为为选中整行
table.setEditTriggers(QAbstractItemView.NoEditTriggers) # 设置不允许编辑
table.setSelectionMode(QAbstractItemView.SingleSelection) # 设置单选模式
table.doubleClicked.connect(self.onDoubleClicked) # 连接双击事件
return table
def addRowTableWidget(self):
# 在QTableWidget表格末尾添加一行
row_count = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_count)
newItem = QTableWidgetItem()
self.tableWidget.setItem(row_count, 0, newItem)
def removeRowTableWidget(self):
# 删除QTableWidget中选中的行
indexes = self.tableWidget.selectionModel().selectedRows()
if len(indexes) == 0:
QMessageBox.information(self, "信息", "请选择要删除的行!")
for index in sorted(indexes, reverse=True):
self.tableWidget.removeRow(index.row())
def onDoubleClicked(self, index):
# 双击行的处理函数
self.removeRowTableWidget()
# 使用示例
app = QApplication([])
window = MainWindow() # 假设MainWindow已经定义并且包含tableWidget属性
table = createTableWidget(window)
window.tableWidget = table
addRowTableWidget(window)
# 显示表格
window.show()
app.exec_()
这个代码示例展示了如何创建一个具有基本设置的QTableWidget,如何添加和删除行,以及如何处理双击事件。在实际应用中,你需要定义MainWindow类,并确保它包含对应的信号和槽函数的连接。
评论已关闭