Как проверить состояние флага в QTreeWidget? - PullRequest
0 голосов
/ 27 января 2020

Я только начал изучать Qt. Я создал QTreeWidget с флагами и хотел, чтобы новый виджет с текстом (например) создавался после каждой проверки флага. Я пытался сделать вектор указателей на ptwiC, чтобы проверить состояние позже, но результата нет.

QTreeWidget twg;
QVector<QTreeWidgetItem*> pointers;
QString lst;
    lst<< "Date"<< "Work"<< "Status";
    twg.setHeaderLabels(lst);

    QTreeWidgetItem* ptwi= new QTreeWidgetItem(&twg);
    ptwi->setText(0, "Works");

    QTreeWidgetItem* ptwiC= 0;
        for(int i=0; i<=10; i++){
            ptwiC= new QTreeWidgetItem(ptwi);
            ptwiC->setText(0, QString::number(i));
            ptwiC->setText(1, "Work"+ QString::number(i));
             ptwiC->setCheckState(2,Qt::Unchecked);
             pointers.push_back(ptwiC);
          }
             ptwi->setExpanded(true);

     twg.resize(400, 300);
     twg.show();

    for(int i=0; i<=10; i++){
    if(pointers[i]->checkState(2)==Qt::Checked){
          //some actions
            }
    }

1 Ответ

0 голосов
/ 28 января 2020

Ваша идея прекрасно работает для меня.

bool TreeWidget_CheckedState::GetState(int buttonNr)
{
  return pointers.at(buttonNr)->checkState(2) == Qt::Checked;
}

enter image description here

...