0

如何将 QTableWidget 边框颜色和鼠标光标更改为特定单元格(QTableWidgetItem),而不是整个表格?

看起来我必须使用 QStyledItemDelegate,但我不知道如何应用样式表。我想在发生特定事件时(例如,单击特定按钮时)更改特定单元格的边框,但这太难了。

self.tblWgt = QTableWidget()
self.tblWgt.setStyleSheet('''
QTableView:item {
    border: 1px solid red;
}
''') # change whole cell style
self.tblWgt.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) # change whole cell mouse cursor

item = QTableWidgetItem()
item.setStyleSheet() # does not exist

class Delegate(QStyledItemDelegate):
  def paint(self, painter, option, index):
    super().paint(painter, option, index)
    option.widget.style().setStyleSheet()  <<< # does not exist

self.tblWgt.setItemDelegateForColumn(2, Delegate())


def BorderChange(self):
  item.setStyleSheet() # does not exist
  # How to change a specific cell border using a delegate? I want to use stylesheet

self.btn1 = QPushButton(self)
self.btn1.setText("Border change button")
self.btn1.clicked.connect(self.BorderChange)

4

0 回答 0