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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вылетает приложение  (Прочитано 3602 раз)
Артем
Гость
« : Март 25, 2017, 20:40 »

При определении положения курсора, хочу вывести текст ячейки  в консоль, но приложение вылетает (пишет что-то типа принудительной остановки)

 QTableWidgetItem *item;
    QPoint relativeMousePos = QCursor::pos();
    QPoint absoluteMousePos = QWidget::mapToGlobal(relativeMousePos);
    item = ui->tableWidget->itemAt(absoluteMousePos);
qDebug()  << item->text() ;
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Март 25, 2017, 21:45 »

Для начала закомментируй строку
qDebug()  << item->text() ;

А скорее всего проверяй item на NULL.
Если item == NULL то вылет.
Нельзя от нуля взять функцию.
Записан
Артем
Гость
« Ответ #2 : Март 26, 2017, 00:03 »

А нет. А почему этот указатель вообще может быть нулевым?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Март 26, 2017, 01:09 »

потому что по указанным координатам нет айтема — itemAt() ожидает ведь не глобальные координаты, а локальные координаты таблицы.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Март 28, 2017, 15:01 »

Цитировать
QPoint relativeMousePos = QCursor::pos();
QCursor::pos() возвращает глобальные координаты!
« Последнее редактирование: Март 29, 2017, 11:56 от Alex Custov » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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