How to add checkable QComboBox in a QTableWidget header
Unsolved
General and Desktop
-
I am bit new to PyQt. I tried implementing it in the following way. However, I cannot add QComboBox in the header. But we surely can add text and format background colour.
I guess implementing QHeaderView is mandatory, like you mentioned. Could you please share a code snippet of how I can achieve this?
import sys from PyQt5 import QtGui, QtWidgets class MyFrame(QtWidgets.QFrame): def __init__(self, parent=None,initials=None): QtWidgets.QFrame.__init__(self, parent) self.table = QtWidgets.QTableWidget(5,3,self) self.table.move(30,30) self.table.resize(400,300) self.combo_counterp = ['a', 'b', 'c', 'd'] combobox_counterp = QtWidgets.QComboBox() for val in self.combo_counterp: combobox_counterp.addItem(val) item1 = QtWidgets.QTableWidgetItem(self.table.setCellWidget(-1,-1,combobox_counterp)) item1.setBackground(QtGui.QColor(255, 0, 0)) self.table.setHorizontalHeaderItem(0,item1) item2 = QtWidgets.QTableWidgetItem('green') item2.setBackground(QtGui.QColor(0, 255, 0)) self.table.setHorizontalHeaderItem(1,item2) if __name__ == '__main__': app = QtWidgets.QApplication.instance() if app is None: app = QtWidgets.QApplication(sys.argv) app.aboutToQuit.connect(app.deleteLater) app.setStyle(QtWidgets.QStyleFactory.create('Fusion')) # won't work on windows style. Frame = MyFrame(None) Frame.resize(500,400) Frame.show() app.exec_()