Seite 1 von 1

qapp->translate Seg Fault

Verfasst: 8. Mai 2007 00:24
von mase
Hallo!
Ich habe meine ersten Versuche mit QT3 und KDE gestartet.
Mein Projekt habe ich in Kdevelop erstellt.
Jedoch gibt es Probleme mit der tr()-Funktion.
Folgende Codestelle:

Code: Alles auswählen

 NewAct = new QAction(tr("&New"), tr("Ctrl+N"), this);
 NewAct->setIconSet(QPixmap::QPixmap("images/new.png"));
 NewAct->setStatusTip(tr("Create a new Project"));
 connect(NewAct, SIGNAL(activated()), this, SLOT(newProject()));
ergibt einen Seg Fault.
Beim Debuggen hab ich festgestellt, dass es an der return Anweisung
von

Code: Alles auswählen

if ( qApp )
return qApp->translate( "cMainwindow", s, c, QApplication::DefaultCodec );
else
return QString::fromLatin1( s );
scheitert. Ich habe eine einfache KDE-Anwendung (Automake based)
erstellt.
Ich hab noch keine Übersetzungsdateien erstellt, ich will die Anwendung
nur dafür vorbereiten.
Weiss jemand Rat?
Ich verwende Debian Etch mit Kdevelop-3.4.0.

Verfasst: 8. Mai 2007 16:39
von mase
In der Anweisung

Code: Alles auswählen

return qApp->translate( "cMainwindow", s, c, QApplication::DefaultCodec ); 
zeigt der Debugger für s die Adresse 0x8057f37 und den Wert "&New"
an. Scheint ja ok.
Doch c weist auf 0x0.

Verfasst: 8. Mai 2007 23:57
von mase
Ich hab's gelöst!
Ich habe den Menüs Actions hinzugefügt, die zu diesem Zeitpunkt noch
gar nicht existieren. Ich hab sie ja noch gar nicht implementiert.
Wie blöd!
Doch der Debugger hat sich auch seltsam verhalten, weil er mir den
Seg Fault immer an einer anderen Stelle ausgegeben hat.