PyQt5 QTableView를 사용하여 GUI에 SQL 테이블을 표시하고 있습니다. 마지막 열의 값을 정렬하기 위해 다음을 사용합니다.
delegate = AlignDelegate(self.view)
self.view.setItemDelegateForColumn(3, delegate)
class AlignDelegate(QtWidgets.QStyledItemDelegate):
def initStyleOption(self, option, index):
super(AlignDelegate, self).initStyleOption(option, index)
option.displayAlignment = (QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
이제 AlignDelegate
표시된 숫자의 색상을 변경하기 위해 무언가를 추가 할 수 있는지 궁금합니다 (음수를 빨간색으로 표시). 나는 작동하는 해결책을 찾지 못했기 때문에 누군가 나에게 힌트를 줄 수 있다면 정말 좋을 것입니다.
Python 3.8, PyQt5 5.15.0, PyCharm 2020.2 및 Linux Mint 19.3을 사용하고 있습니다.
텍스트 색상을 변경하려면 QStyleOptionViewItem의 팔레트를 변경해야하고 배경색을 변경하려면 QStyleOptionViewItem의 backgroundBrush를 변경해야합니다.
class AlignDelegate(QtWidgets.QStyledItemDelegate):
def initStyleOption(self, option, index):
super(AlignDelegate, self).initStyleOption(option, index)
option.displayAlignment = QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter
value = index.data()
if value < 0:
option.palette.setBrush(
QtGui.QPalette.Text, QtGui.QBrush(QtGui.QColor("red"))
)
option.backgroundBrush = QtGui.QBrush(QtGui.QColor("green"))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다