[gelöst:] String aus C-function in QMessageBox verwenden

Alles rund um die Programmierung mit Qt
Antworten
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

[gelöst:] String aus C-function in QMessageBox verwenden

Beitrag von qtNiko »

Hi,
ich habe eine C-function, die einen Pointer auf char, also char *, zurückliefert.
Diese function möchte ich direkt innerhalb QMessageBox() verwenden, z.B.

Code: Alles auswählen

char * get_errorcode(int err);  // in einem h-File deklariert
...
QMessageBox(this,"Title", tr("Fehler" *get_errorcode(5)), ...);
Auch mit

Code: Alles auswählen

QMessageBox(this,"Title", tr(Qt::convertFromPlainText(*error_get_string(error))), ...) klappt es nicht.
Natürlich könnte man z.B. mit sprintf() vorher einen String erzeugen und in QMessageBox() verwenden. Aber ich würde doch gerne wissen, wie die Syntax lauten muss, damit ich get_errorcode() direkt innerhalb QMessageBox() einsetzen kann.
Zuletzt geändert von qtNiko am 27. September 2008 22:23, insgesamt 1-mal geändert.
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Eine QMessageBox mlchte einen QString, keinen char*. Also einfach mal in die QString-Doku schauen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

QMessageBox(this,"Title", tr("Fehler") + QString(get_errorcode(5))));
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

KernelPanic hat geschrieben:QMessageBox(this,"Title", tr("Fehler") + QString(get_errorcode(5))));
Vielen Danke das Du die Leute für ihre Faulheit belohnst...

Ist außerdem nicht ganz richtig - nur wenn get_errorcode() einen ASCII-kodierten String zurückgibt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

Danke, KernelPanik

Christian81, mit der Doku ist es nicht immer getan. Da hatte ich bereits gesucht.
Wenn man nicht so fit ist mit Qt und C++, wie einer wie du, dann sagt einem die Doku leider oft nicht den Fehler, den man macht. Wenn sich einer auskennt, dann ist die Doku glasklar. Wenn aber nicht, dann sucht man auch mal am Problem vorbei.
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn man sich die QString Doku anschaut und nach char sucht - und nichts findet sollte man lieber aufhören.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Naja... was heisst Faulheit.. ich kenn das selbst. Manchmal sieht man eben den Wald vor Bäumen nicht. Und dann möchte ich ja auch geholfen kriegen, egal wie blöd meine Frage ist. Ich kanns nicht leiden wenn man statt ner vernünftigen Antwort die Leute "ankackt". Und solange die Frage, sei sie auch noch so blöd, in einem guten Deutsch und verbal ordnungsgemäß geäußert wurde, kann man sie auch freundlich beantworten.

@qtNiko
QMessageBox(this,"Title", tr("Fehler" *get_errorcode(5)), ...);
Weisst du was du hier getan hast oder war das nur ein Versehen? :wink:
Wenn nicht guck dir nochmal ein wenig die C++ Grundlagen an.
Antworten