Skip to content Skip to sidebar Skip to footer

Qcombobox Show Whole Row Of Qtreeview

I want to use QtreeView to organize the data shown by a QComboBox. As you can see in my example, creating the box and setting up data works so far. But my problem is, that the comb

Solution 1:

A possible solution is to concatenate the texts in the row and set as the text to be painted:

class ComboBox(QComboBox):
    def paintEvent(self, event):
        painter = QStylePainter(self)
        painter.setPen(self.palette().color(QPalette.Text))
        # draw the combobox frame, focusrect and selected etc.
        opt = QStyleOptionComboBox()
        self.initStyleOption(opt)

        values = []

        for c in range(self.model().columnCount()):
            index = self.model().index(self.currentIndex(), c, self.rootModelIndex())
            values.append(index.data())
        opt.currentText = " ".join(values)
        painter.drawComplexControl(QStyle.CC_ComboBox, opt)
        # draw the icon and text
        painter.drawControl(QStyle.CE_ComboBoxLabel, opt)

Post a Comment for "Qcombobox Show Whole Row Of Qtreeview"