Seite 1 von 1

QLineEdit->text(): Segmentation fault

Verfasst: 14. Mai 2007 22:22
von boom1992
Hallo!
Ich suche jetzt schon seit ca 2 Wochen eine Lösung für folgendes Problem:
Der folgende Slot ergibt ein Segmentation fault:

void MyVideoEnkoder:n_startbutton_clicked()
{
//reads values of Combo- and Spinboxes and sets as public variables
m_inputline = inputline->text();
m_outputline = outputline->text();
m_VBSpin=m_VBSpin.setNum(VBSpin->value());
m_ABSpin=m_ABSpin.setNum(ABSpin->value());
m_VCCombo=VCCombo->currentText();
m_ACCombo=ACCombo->currentText();
m_FPSSpin=m_FPSSpin.setNum(FPSSpin->value());
m_delayspin=m_delayspin.setNum(delayspin->value());
m_scale1box=m_scale1box.setNum(scale1box->value());
m_scale2box=m_scale2box.setNum(scale2box->value());
m_cropbox1=m_cropbox1.setNum(cropbox1->value());
m_cropbox2=m_cropbox2.setNum(cropbox2->value());
m_cropsize1box=m_cropsize1box.setNum(cropsize1box->value());
m_cropsize2box=m_cropsize2box.setNum(cropsize2box->value());
m_backendcombo=backendcombo->currentText();

/**What backend should be used**/
if( m_backendcombo == "MEncoder")
MEncoder();
if( m_backendcombo == "FFMpeg")
FFMpeg();
if( m_backendcombo == "Transcode")
Transcode();
}


Hier die anderen Teile des Sourcecodes:
MyVideoEnkoder.h: http://www.ubuntuusers.de/paste/10630/
MyVideoEnkoder.cpp: http://www.ubuntuusers.de/paste/10631/
main.cpp: http://www.ubuntuusers.de/paste/10632/
ui_MyVideoEnkoderMainWindow: http://www.ubuntuusers.de/paste/10633/
Hinzu kommen noch zwei weitere Ui-Files + der abgeleitete Klassen, welche aber nichts damit zu tun haben, da sie in das Hauptprogram noch gar net "implementiert" wurden.

Kann mir jemand bei der Lösung helfen ??


Gruß

boom1992

Verfasst: 15. Mai 2007 07:17
von macman
Noch einer ohne Debugger? Leute, ohne Debugger macht ihr euch das Leben schwer und mit Debugger sollte es kein Problem sein eine Zugriffsverletzung zu finden.

Verfasst: 15. Mai 2007 15:40
von c_m
Das stinkt doch stark nach:
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.
Hast denn mal getestet in welcher Zeile der Fehler auftritt?

//EDIT: Wenn du von MyVideoEnkoderMainWindow ableitest, MyVideoEnkoder also dein Window wird, warum machst du dann das:

Code: Alles auswählen

Ui::MyVideoEnkoderMainWindow ui;

ui.setupUi(this);
ich hätts jetzt eher so gemacht:

Code: Alles auswählen

setupUi(this);
Denn this ist ja schon ein spezialisiertes MyVideoEnkoderMainWindow. GGf kommen sich die beiden Instanzen ins gehege?!

//EDIT2: Ja logisch (wenn ich jetzt nicht ganz abgedreht bin)!
Du hast ne Instanz ui erzeugt und diese initialisierst du. Parent ist dabei dein MyVideoEnkoder. Dein Slot greift aber auf die Objekte in MyVideoEnkoder zu (die eben noch nicht initialisiert sind).
Folglich siehst du dein Window (ui) aber es kracht wenn der Slot aktiv wird (MyVideoEnkoder).
[Meine Vermutung. Verbesserungen sind erwünscht ^^]

Verfasst: 15. Mai 2007 21:43
von boom1992
Hey, danke!!!
Hab so lange gesucht und die Lösung war im Endeffekt so einfach :-D

PS: Ach ja, ich hab auch nen Debugger, nur hab ich vergessen den Inhalt zu posten... :oops: [/img]