crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QTreeWidget, Дерево с чекбоксами
Azazello
  опции профиля:
сообщение 10.5.2010, 15:04
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 17.4.2010
Пользователь №: 1635

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет, и с прошедшим праздником Победы!

Есть такой код:
QString child_text;
for(int i=0; i<ui->treeWidget->invisibleRootItem()->childCount(); ++i)
{
QTreeWidgetItem *item = ui->treeWidget->invisibleRootItem()->child(i);


if (item->checkState(0) == Qt::Checked)
{
         for (int j = 0; j < item->childCount(); ++j)
         {
                    QTreeWidgetItem    *subItem = item->child(j);
                    child_text += subItem->text(0) + "\n";    
         }
      
}
}
ui->textEdit->insertPlainText(whole_text);

И есть дерево такого вида:


Пытаюсь получить вывод чекнутых записей подгрупп в textEdit, но пока получается только вывод всех записей одной группы, когда чекнут родитель группы (например System). Значения самих родителей не должно иметь значения, но почему-то таки имеет. В чем я ошибся?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2010, 15:19
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Azazello @ 10.5.2010, 19:04) *
Значения самих родителей не должно иметь значения,
значения, в смысле текст?

Цитата(Azazello @ 10.5.2010, 19:04) *
QString child_text;
Цитата(Azazello @ 10.5.2010, 19:04) *
ui->textEdit->insertPlainText(whole_text);
в реальном коде тоже так? Ты помещаешь в QTextEdit один текст, а собираешь из дерева другой.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Azazello
  опции профиля:
сообщение 10.5.2010, 17:51
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 17.4.2010
Пользователь №: 1635

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 10.5.2010, 16:19) *
значения, в смысле текст?

И текст, и вообще. Они просто группируют, для пользователя, остальное не принципиально.
Цитата(Litkevich Yuriy @ 10.5.2010, 16:19) *
в реальном коде тоже так? Ты помещаешь в QTextEdit один текст, а собираешь из дерева другой.

Нет конечно, просто пропустил, когда постил сообщение. Там разумеется тоже child_text.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Azazello
  опции профиля:
сообщение 11.5.2010, 20:29
Сообщение #4


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 17.4.2010
Пользователь №: 1635

Спасибо сказали: 0 раз(а)




Репутация:   0  


up :unknown:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Azazello
  опции профиля:
сообщение 11.5.2010, 22:37
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 17.4.2010
Пользователь №: 1635

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все, вроде доковырял. Всем спасибо!

QString child_text;
for(int i=0; i < ui->treeWidget->invisibleRootItem()->childCount(); ++i)
{
QTreeWidgetItem *item = ui->treeWidget->invisibleRootItem()->child(i);


if (item->checkState(0) == Qt::Checked||Qt::PartiallyChecked)
{
         for (int j = 0; j < item->childCount(); ++j)
         {
                    QTreeWidgetItem    *subItem = item->child(j);
                    if (subItem->checkState(0) == Qt::Checked) {
                        child_text += subItem->text(0) + "\n"; }
         }

}
}
ui->textEdit->insertPlainText(child_text);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 6:39