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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: приложение глючит на ноуте  (Прочитано 3310 раз)
billidean
Гость
« : Июнь 30, 2015, 17:22 »

Добрый день всем.
Столкнулся такой проблемой:
- на работе (на стац. ПК) написал приложение (QtCreator 2.7.2 Qt 5.1.0), запускал - все работает
- принес домой на ноут (Qt тот же) - глючит, но проект компилится без ошибок.
Глюк проявляется в следующем:
в конструкторе майнокна создаю QSound и QCursor:
Код:
    QPixmap pix1(":/src/pics/cursors/cursor1.png");
    cur_cur = new QCursor(pix1);
    QPixmap pix2(":/src/pics/cursors/cursor2.png");
    cur = new QCursor(pix2);
    QString soundFile = ":/src/sounds/m3-1.wav";
    sound = new QSound(soundFile);
    sound->setLoops( 1 );
в обработчике нажатия мыши:
Код:
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if( event->type() == QMouseEvent::MouseButtonPress )
    {
        sound->play();
        ui->label->setCursor(*cur);
    }
}
на play() - seg.fault,
если эту строку комментарю. то на setCursor - seg.fault.
Отладчик кажит, что sound и cur равны 0.

Не догоняю, почему так?НепонимающийНепонимающий

ПЛЗ, поможите.
Записан
torwig
Самовар
**
Offline Offline

Сообщений: 134



Просмотр профиля
« Ответ #1 : Июнь 30, 2015, 20:19 »

Если отладчик говорит, что переменные 0, значит так и есть, а значит каким-то образом не выполнился тот код, который у Вас "в конструкторе", хотя конечно мы же с Вами понимаем, что такого не может быть  Улыбающийся
В итоге - попахивает мистикой.
Возможно, нужно больше кода на обозрение.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #2 : Июль 01, 2015, 08:58 »

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

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Июль 01, 2015, 10:09 »

А зачем в событии mousePressEvent проверять, что тип события MouseButtonPress? Улыбающийся
Записан

billidean
Гость
« Ответ #4 : Июль 01, 2015, 10:35 »

А зачем в событии mousePressEvent проверять, что тип события MouseButtonPress? Улыбающийся
Это просто из другого кода выдернуто...
А зачем это уточнять, если это не влияет на работу программы, ну проверится еще раз, не устанет. Изначально было немного не так, но тоже не работало.

А на счет указателей - попробую. Но на одной машине работает, на другой нет. Если бы механизм был неверный, то оно бы не работало нигде.

Но все-же спасибо за помощь, буду пробовать.
Записан
billidean
Гость
« Ответ #5 : Июль 01, 2015, 10:55 »

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


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