Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: crossly от Апрель 21, 2009, 12:38



Название: seg fault
Отправлено: crossly от Апрель 21, 2009, 12:38
народ .... подскажите ... почему падает этот код...
Код:
Logo::Logo()
{
setAttribute ( Qt::WA_DeleteOnClose );
setWindowFlags(windowFlags()|Qt::Popup);
v=new Phonon::VideoWidget (this);
o=new Phonon::MediaObject (this);
Phonon::createPath ( o, v );
v->setAspectRatio ( Phonon::VideoWidget::AspectRatio4_3 );
o->enqueue ( Phonon::MediaSource ( "Perpetuum.avi" ) );
connect ( o,SIGNAL ( finished() ),this,SLOT ( repeat() ) );
o->play();

start=new QPushButton ( tr ( "Запустить приложение" ),this );
exit=new QPushButton ( tr ( "Выход" ),this );
connect ( start,SIGNAL ( clicked() ),this,SLOT ( slotStart() ) );
connect ( exit,SIGNAL ( clicked() ),qApp,SLOT ( quit() ) );

QVBoxLayout *l=new QVBoxLayout ( this );
QHBoxLayout *h=new QHBoxLayout;
h->addSpacing ( 1 );
h->addWidget ( start );
h->addWidget ( exit );
l->addWidget ( v );
l->addLayout ( h );
setLayout ( l );
}
void Logo::repeat()
{
o->seek ( 0 );
qDebug()<<o->currentTime();
o->play();
}
void Logo::slotStart()
{

}


Название: Re: seg fault
Отправлено: spirit от Апрель 21, 2009, 12:41
а покажи как ты создаешь экземпляр класса Logo, не в стеке ли случайно?


Название: Re: seg fault
Отправлено: pastor от Апрель 21, 2009, 12:55
А где хоть падает? При каких обстаятельствах? Как создается Logo? А то все телепаты в отпуске...


Название: Re: seg fault
Отправлено: crossly от Апрель 21, 2009, 13:03
Код:
#include <QApplication>
#include <QTextCodec>
#include "logo.h"

int main(int argc, char *argv[])
{
      QApplication app(argc, argv);

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
Logo l;
l.show();
      return app.exec();
}
падает при выходе...


Название: Re: seg fault
Отправлено: pastor от Апрель 21, 2009, 13:05
Убери

setAttribute ( Qt::WA_DeleteOnClose );


Название: Re: seg fault
Отправлено: spirit от Апрель 21, 2009, 13:07
или же в куче создавай экземпляр, т.е. через оператор new.