Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

add checkbox to qtreewidgetitem

i want to add a check box to my qtreewigetitem, i tried this code to setflag, then i add item is selectable for sake of maybe this will solve my problem but nothing happened, would you please help me how can i add check box to my item? thank you in advance

m_eventList->addTopLevelItem(new QTreeWidgetItem);
       QTreeWidgetItem *item = m_eventList->topLevelItem(m_eventList->topLevelItemCount()-1)

    item->setFlags(item->flags() | Qt::ItemIsUserCheckable |Qt::ItemIsSelectable);
like image 477
mari Avatar asked Dec 06 '22 02:12

mari


2 Answers

The ItemIsUserCheckable flag is already set by default in QTreeWidgetItem, so that's not the issue.

All you need is to do

item->setCheckState(Qt::Unchecked);

and you should see a checkbox.

like image 143
David Faure Avatar answered Dec 08 '22 16:12

David Faure


Try to reorganize your code:

QTreeWidgetItem* item = new QTreeWidgetItem();
item->setFlags(item->flags() | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
item->setCheckState(Qt::Checked);
m_eventList->addTopLevelItem(item);

Another method would be to write your own model and overwrite the flags() method. In this method, you return

Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
if (index.column() == 0)
{
    flags |= Qt::ItemIsUserCheckable;
}
return flags;
like image 38
CppChris Avatar answered Dec 08 '22 16:12

CppChris