QLineEdit->text(): Segmentation fault

Alles rund um die Programmierung mit Qt
Antworten
boom1992
Beiträge: 2
Registriert: 14. Mai 2007 22:17

QLineEdit->text(): Segmentation fault

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
c_m
Beiträge: 15
Registriert: 9. Juni 2006 23:13
Kontaktdaten:

Beitrag 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 ^^]
boom1992
Beiträge: 2
Registriert: 14. Mai 2007 22:17

Beitrag 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]
Antworten