항목을 선택할 때 다른 선택 색상을 사용하고 싶습니다. 그러나 QTableWidget::item:selected{ background-color: }
은 선택한 항목이 하나 뿐인 경우에만 작동합니다. 그렇지 않으면 선택한 모든 항목의 선택 색상이 동일하게됩니다. 그래서 모든 항목을 개별 선택 색상으로 만들 수있는 방법이 있습니까? PyQt5에서 QTableWidget의 각 항목의 선택 색상을 설정하는 방법
한
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.MainWindow=MainWindow
self.MainWindow.resize(300, 100)
self.centralwidget = QtWidgets.QWidget(self.MainWindow)
self.MainWindow.setCentralWidget(self.centralwidget)
"""table """
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.insertRow(0)
self.tableWidget.setColumnCount(2)
self.tableWidget.setItem(0,0,QtWidgets.QTableWidgetItem("red"))
self.tableWidget.setItem(0,1,QtWidgets.QTableWidgetItem("blue"))
self.tableWidget.itemSelectionChanged.connect(self.ChangeSelectionColor)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def ChangeSelectionColor(self):
try:
for item in self.tableWidget.selectedItems():
col=item.column()
self.tableWidget.setStyleSheet("QTableWidget::item:selected{ background-color: %s }"%color_list[col])
except UnboundLocalError:
pass
if __name__ == "__main__":
import sys
color_list=['red','blue']
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
선택은 잘 작동합니다.
여러 선택은 선택한 모든 항목에 색상을 적용합니다. 한 번 선택하면 왼쪽의 빨간 색을 원해.
색상은 무엇에 달려 있습니까? – eyllanesc
@eyllanesc'main'에 정의 된'color_list'. column = i 일 때, 그것의 선택 색깔은'color_list [i]'이어야한다. – user6456568
당신이 내 질문을 이해하지 못했을 것, 당신이 2 행 3 열의 테이블을 가지고 있다고 말하면, 어떤 색이 될 것이고, 그것이 선택 될 때 각 세포는 무엇을 가져야 하는가? – eyllanesc