Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Andrew Vladoff от Октябрь 25, 2012, 16:20



Название: TreeWidget и PartiallyChecked
Отправлено: Andrew Vladoff от Октябрь 25, 2012, 16:20
Создал таблицу и хочу одному из полей установить метод PartiallyChecked
Цитировать
   tw = new QTreeWidget;
   tw->setAlternatingRowColors(true);
   tw->setEditTriggers(QAbstractItemView::AllEditTriggers);
   tw->setColumnWidth(0, 270);

   pItem = new QTreeWidgetItem(tw);
   pItem->setText(0, tr("Node"));
   pItem->setFlags(Qt::ItemIsEnabled|Qt::ItemIsTristate);
   pItem->setCheckState(1, Qt::PartiallyChecked);

   
   
   Метод PartiallyChecked работает только один раз при создании таблицы. Потом только Checked и Unchecked. Как установить все три варианта выбора?


Название: Re: TreeWidget и PartiallyChecked
Отправлено: carrygun от Октябрь 26, 2012, 05:29
В справке написано:
Цитировать
Qt::PartiallyChecked: The item is partially checked. Items in hierarchical models may be partially checked if some, but not all, of their children are checked.

Дабовь к этому элементу дочерних итемов с чекабельностью, например так:
   
Код:
    QTreeWidgetItem *wi = new QTreeWidgetItem(treeWidget);
    treeWidget->setEditTriggers(QAbstractItemView::AllEditTriggers);
    wi->setText(0, "test");
    wi->setFlags(Qt::ItemIsEnabled | Qt::ItemIsTristate | Qt::ItemIsUserCheckable);
    wi->setCheckState(0, Qt::PartiallyChecked);
    QTreeWidgetItem *wi2 = new QTreeWidgetItem(wi);
    wi2->setText(0, "wi2");
    QTreeWidgetItem *wi3 = new QTreeWidgetItem(wi);
    wi3->setText(0, "wi3");
    wi2->setFlags(Qt::ItemIsEnabled | Qt::ItemIsTristate | Qt::ItemIsUserCheckable);
    wi3->setFlags(Qt::ItemIsEnabled | Qt::ItemIsTristate | Qt::ItemIsUserCheckable);
    wi2->setCheckState(0, Qt::Unchecked);
    wi3->setCheckState(0, Qt::Unchecked);