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
QLineEdit->text(): Segmentation fault
Das stinkt doch stark nach:
//EDIT: Wenn du von MyVideoEnkoderMainWindow ableitest, MyVideoEnkoder also dein Window wird, warum machst du dann das:
ich hätts jetzt eher so gemacht:
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 ^^]
Hast denn mal getestet in welcher Zeile der Fehler auftritt?Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.
//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);Code: Alles auswählen
setupUi(this);//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 ^^]