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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чей баг, мой или Qt?  (Прочитано 5939 раз)
L.Marvell
Гость
« : Август 29, 2005, 18:55 »

Есть QListWidget, к его сигналу itemClicked прицеплен слот и вот когда кликаешь на границу между выделенным и невыделенным элементом, приложение падает. Обнаружено чисто случайно Улыбающийся Если цеплять, например, на currentItemChanged, то все работает нормально, но в моей ситуации пока к сожалению нужно использовать itemClicked.
Записан
KADABRA
Гость
« Ответ #1 : Август 29, 2005, 19:14 »

Какая версия кути? Какая ОС?
Записан
L.Marvell
Гость
« Ответ #2 : Август 29, 2005, 19:39 »

Цитата: "KADABRA"
Какая версия кути? Какая ОС?

Упс... сори, забыл сообщить. Qt 4.0.1 open source под вынь.
Записан
KADABRA
Гость
« Ответ #3 : Август 29, 2005, 20:26 »

Только что проверил - всё отлично работает.
Могу вот что привести:
void QListWidget::itemClicked ( QListWidgetItem * item )  [signal]
This signal is emitted when a mouse button is clicked. The item may be 0 if the mouse was not clicked on an item.

Может ты не проверяешь на нулл?
Записан
KADABRA
Гость
« Ответ #4 : Август 29, 2005, 20:26 »

Только что проверил - всё отлично работает.
Могу вот что привести:
void QListWidget::itemClicked ( QListWidgetItem * item )  [signal]
This signal is emitted when a mouse button is clicked. The item may be 0 if the mouse was not clicked on an item.

Может ты не проверяешь на нулл?
Записан
KADABRA
Гость
« Ответ #5 : Август 29, 2005, 20:28 »

Ещё могу посоветовать использовать всё-таки
currentItemChanged(QListWidgetItem *, QListWidgetItem *)
Записан
mipo
Гость
« Ответ #6 : Август 30, 2005, 06:16 »

У currentItemChanged такая же проблема:
Код:

currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *)
{
    if (!current) return;
    // Do something using current
}

Без этого "if (!current) return;" у меня были сбои в программе когда много тыкал в разные щели
Записан
L.Marvell
Гость
« Ответ #7 : Август 30, 2005, 12:47 »

Таки да, нужно проверять на присутствие кликнутого элемента. А вот в случае с currentItemChange у меня работает и без проверки, как только ни кликал - не падает.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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