Russian Qt Forum

Qt => Вопросы новичков => Тема начата: billidean от Июнь 30, 2015, 17:22



Название: приложение глючит на ноуте
Отправлено: 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.

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

ПЛЗ, поможите.


Название: Re: приложение глючит на ноуте
Отправлено: torwig от Июнь 30, 2015, 20:19
Если отладчик говорит, что переменные 0, значит так и есть, а значит каким-то образом не выполнился тот код, который у Вас "в конструкторе", хотя конечно мы же с Вами понимаем, что такого не может быть  :)
В итоге - попахивает мистикой.
Возможно, нужно больше кода на обозрение.


Название: Re: приложение глючит на ноуте
Отправлено: Fregloin от Июль 01, 2015, 08:58
а зачем вы создаете указатели для объектов курсоров и звуков и копируете их с локальных объектов? не проще ли хранить объекты в стеке для этих целей.


Название: Re: приложение глючит на ноуте
Отправлено: gil9red от Июль 01, 2015, 10:09
А зачем в событии mousePressEvent проверять, что тип события MouseButtonPress? :)


Название: Re: приложение глючит на ноуте
Отправлено: billidean от Июль 01, 2015, 10:35
А зачем в событии mousePressEvent проверять, что тип события MouseButtonPress? :)
Это просто из другого кода выдернуто...
А зачем это уточнять, если это не влияет на работу программы, ну проверится еще раз, не устанет. Изначально было немного не так, но тоже не работало.

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

Но все-же спасибо за помощь, буду пробовать.


Название: Re: приложение глючит на ноуте
Отправлено: billidean от Июль 01, 2015, 10:55
Спасибо всем.
Нашел косяк, когда начал с указателями разбираться. Причем косяк мой, недописал код.
Но  ваши размышления меня направили по нужному пути.