Russian Qt Forum
Сентябрь 30, 2024, 18:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QListWidget c QCheckBox  (Прочитано 9965 раз)
Astrologer
Гость
« : Сентябрь 23, 2010, 13:48 »

Всем привет. Есть ли такой класс или что нужно сделать чтобы в QlistWidget слева от каждого элемента был checkBox? Можно конечно использовать
Код:
QTreeWidget
с
Код:
TreeWidgetItem
c
Код:
item->setCheckState(0, Qt::Checked);
но интересно насчет QListWidget. Наглядный пример: QtCreator->Инструменты->Параметры->Справка->Фильтры-> GroupBox "Разделы". Заранее спасибо.
« Последнее редактирование: Сентябрь 23, 2010, 14:08 от Astrologer » Записан
Kolobok
Гость
« Ответ #1 : Сентябрь 23, 2010, 14:09 »

Qt::CheckStateRole
Записан
Astrologer
Гость
« Ответ #2 : Сентябрь 23, 2010, 14:21 »

А можно поподробнее?
Записан
Kolobok
Гость
« Ответ #3 : Сентябрь 23, 2010, 14:42 »

Код:
QListWidgetItem *item = new QListWidgetItem;
item->setData(Qt::DisplayRole, "text");
item->setData(Qt::CheckStateRole, Qt::Checked);
ui->listWidget->addItem(item);

Не надо бояться(лениться) пробовать.
Записан
Astrologer
Гость
« Ответ #4 : Сентябрь 23, 2010, 14:49 »

Спасибо. Я просто до сих пор не могу понять что такое роли, поэтому и не нашел. Спасибо за терпение  Улыбающийся
Записан
NicK
Гость
« Ответ #5 : Сентябрь 23, 2010, 14:53 »

того же можно добиться от связки QListView + QStandardItemModel
Записан
Kolobok
Гость
« Ответ #6 : Сентябрь 23, 2010, 15:12 »

Роли это свойства элемента.
Записан
Astrologer
Гость
« Ответ #7 : Сентябрь 23, 2010, 15:19 »

Еще вопросик. Я еще только разбираюсь в тонкостях С++ и прошу помочь. Чем отличаются:

Код:
QListWisget* widget = new QListWidget;
QListWidget* widget = new QListWidget(this);
QListWidget* widget = new QListWidget();
Записан
Kolobok
Гость
« Ответ #8 : Сентябрь 23, 2010, 15:26 »

Если у виджета нет родителя, он будет top level widget. И это тонкости Qt.
Записан
Astrologer
Гость
« Ответ #9 : Сентябрь 23, 2010, 15:31 »

И что это значит? То что он будет перекрывать все остальные виджеты?

А.. Вспомнил:
Код:

class Class1
{
Class1(){};
~Class1();
}
Class1 n1;
Class1* n1 = new Class1();
Записан
Kolobok
Гость
« Ответ #10 : Сентябрь 23, 2010, 15:40 »

Достаточно посмотреть описание конструктора QWidget.

Цитировать
QWidget::QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
Constructs a widget which is a child of parent, with widget flags set to f.
If parent is 0, the new widget becomes a window. If parent is another widget, this widget becomes a child window inside parent. The new widget is deleted when its parent is deleted.
Записан
Astrologer
Гость
« Ответ #11 : Сентябрь 23, 2010, 15:41 »

Ясно, спасибо.
Записан
Astrologer
Гость
« Ответ #12 : Сентябрь 25, 2010, 09:30 »

Код:
QListWisget* widget = new QListWidget;
QListWidget* widget = new QListWidget();

Есть какая нибудь разница между этими строками?
Объект создается в стеке?
« Последнее редактирование: Сентябрь 25, 2010, 09:45 от Astrologer » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #13 : Сентябрь 25, 2010, 12:55 »

Разницы нет. Создается в куче. Парента обязательно указывай.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.16 секунд. Запросов: 22.