I have a checkbox that is disabled (the user should not be able to toggle it) but I'm having trouble changing it's background when selected. I'm sure it has to do with the fact that box is disabled, but I'm not sure how to fix it. If there's an easy fix with stylesheets that would be ideal.
I tried messing around with slots/signals but that caused weird issues and I'd rather not fix this issue that way
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QApplication,
QTableView, QAbstractItemView)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(400, 300)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(50, 40, 310, 50))
self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
self.tableWidget.setSelectionMode(QAbstractItemView.
SingleSelection)
self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.horizontalHeader().setVisible(False)
self.tableWidget.setShowGrid(False)
self.tableWidget.setStyleSheet("background-color: white; selection-background-color: #353535;")
self.tableWidget.insertRow(0)
self.tableWidget.insertColumn(0)
self.tableWidget.insertColumn(1)
self.tableWidget.insertColumn(2)
self.tableWidget.checkBox = QtWidgets.QCheckBox(self.tableWidget)
self.tableWidget.checkBox.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
self.tableWidget.checkBox.setFocusPolicy(QtCore.Qt.NoFocus)
self.tableWidget.checkBox.setMaximumSize(30, 30)
self.tableWidget.checkBox.setStyleSheet("background-color: white; selection-background-color: #353535; padding-left: 10px")
self.tableWidget.checkBox.setChecked(True)
self.tableWidget.setCellWidget(0, 1, self.tableWidget.checkBox)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())