lundi 12 juin 2017

How to create a checkbox in the header of QTableWidget?

I need to create a table like this. When I check the checkbox in the header, all the checkboxes in the same column will be automatically checked. How can I create the checkbox in the header and how can I set signal-slot for that check box?

This is my old code:

ui.table->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui.table->verticalHeader()->hide();
ui.table->setRowCount(8);
ui.table->setColumnCount(3);
ui.table->setHorizontalHeaderLabels(QStringList() << tr(" ") << tr("Interger") << tr("String"));

for (int i = 0; tableindb.size() > i; i++){
    myconstruct ptv = tableindb.value(i);
    QTableWidgetItem *itemCheckbox = new QTableWidgetItem(" ");
    itemCheckbox->setCheckState(Qt::Unchecked);
    ui.table->setItem(i, 0, itemCheckbox);
    itemCheckbox->setData(Qt::ItemDataRole::UserRole, ptv.usercheck);

    QTableWidgetItem *itemNumber = new QTableWidgetItem("Integer");
    itemNumber->setData(Qt::ItemDataRole::DisplayRole, ptv.usernumber);
    ui.table->setItem(i, 1, itemNumber);

    QTableWidgetItem *itemName = new QTableWidgetItem("String");
    itemName->setData(Qt::ItemDataRole::DisplayRole, ptv.username);
    ui.table->setItem(i, 2, itemName);
}

enter image description here




Aucun commentaire:

Enregistrer un commentaire