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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: qlistwidget  (Прочитано 7014 раз)
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #15 : Март 18, 2015, 09:37 »

Я бы даже сделал так:
Код
C++ (Qt)
void QListWidget::itemChanged(QListWidgetItem * item) {
   int count = ui->listWidget->count(); // вычисляем количество вес строк в листвиджете
 
   // перебираем все айтемы кроме самого верхнего
   for (int i = 1; i < count; i++) {
       QListWidgetItem * child = ui->listWidget->item(i); // берем айтем на каждой строке
       child->setCheckState(Qt::Unchecked); // сбрасываем крестик
   }
   item->setCheckState(Qt::Checked)
}
А зацикливания не произойдёт? Состояния айтема меняем, соответственно снова же должен это слот вызваться? не надо это всё в
ui->listWidget->blockSignals(..) обернуть?
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #16 : Март 18, 2015, 15:52 »

Я бы даже сделал так:
Код
C++ (Qt)
void QListWidget::itemChanged(QListWidgetItem * item) {
   int count = ui->listWidget->count(); // вычисляем количество вес строк в листвиджете
 
   // перебираем все айтемы кроме самого верхнего
   for (int i = 1; i < count; i++) {
       QListWidgetItem * child = ui->listWidget->item(i); // берем айтем на каждой строке
       child->setCheckState(Qt::Unchecked); // сбрасываем крестик
   }
   item->setCheckState(Qt::Checked)
}
А зацикливания не произойдёт? Состояния айтема меняем, соответственно снова же должен это слот вызваться? не надо это всё в
ui->listWidget->blockSignals(..) обернуть?
согласен
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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