QComboBox and HeaderItem

  • Dear all, I have a QComboBox with a QStandardItemModel, which contains a single item named "One".
    I want the QComboBox to have an header (I'm not sure this is the correct technical term ...) which will always be the same.

    [1] To be more precise, running the code below leads to the following output:
    "One" (as the header) + "One" (with a checkbox).

    [2] What I'm looking for is as follows:
    "Header" (as the header) + "One" (with a checkbox).

    I tried the function "model.setHorizontalHeaderItem()" but it leads to the same as [1] above.
    Please, help me.

    @#include <QApplication>
    #include <QComboBox>
    #include <QStandardItemModel>

    int main( int argc, char **argv )
    QApplication app( argc, argv );

    QComboBox* comboBox = new QComboBox();

    QStandardItemModel model( 1, 1 );
    QStandardItem *item = new QStandardItem( QString("One") );

    item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled );
    item->setData ( Qt::Unchecked, Qt::CheckStateRole );

    model.setItem(0, 0, item);

    model.setHorizontalHeaderItem( 0, new QStandardItem( "Header" ) );

    comboBox->setModel( &model );

    return app.exec();

  • See QComboBox::setView , QComboBox uses QListWidget as view by default and there's no header. Set QTreeWidget as QComboBox view and there you can set header.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.