Seite 1 von 3
[QT4, MSVC] Icon + AcrobatReader
Verfasst: 12. Oktober 2005 10:16
von m.trix
Hallo zusammen. Ich bin neu und hab gleich 2 (:shock:) Problemchen, die ich auch nach längerem suchen nicht lösen könnte. Ach ja, und Qt-n00b bin ich auch noch...
1.
Qt will mir einfach mein Icon nicht links oben in die Fensterleiste tun. Keine Fehler, in der .qrc steht das Icon auch drin.
Müsste doch eigentlich reichen? (window = QWidget)
2.
Wie kann ich Qt dazu nötigen, mir ein PDF aufzumachen? Bisher geht nur ein popeliges popup mit 'ner kleinen Hilfe auf. Hab schon die Hilfe geschrieben, aber bekomms nicht raus wie ich das PDF aufmachen kann.
Weis jemand Rat?
Verfasst: 12. Oktober 2005 10:29
von BartSimpson
zeige uns mal was in der .rc Datei steht.
willst du die PDF's über den Assistenten starten oder aus deinem Programm herraus?
Verfasst: 12. Oktober 2005 10:37
von m.trix
app.qrc:
Code: Alles auswählen
<RCC>
<qresource prefix="/app">
<file>images/logo.png</file>
<file>images/on.ico</file>
<file>images/rs.ico</file>
</qresource>
</RCC>
In der von Qt erstellenten qrc_app.cpp stehen die Icons drin. Deswegen versteh ich nicht wirklich warum die Icons nicht eingebunden werden.
Bei F1 soll anstelle eines popup die Hilfe.pdf geöffnet werden. Der Pfad soll erstmal egal sein, wird wohl erstmal ein absoluter sein. Was du mit dem Assistenen meinst, versteh ich nicht. Wie schon gesagt, n00b...
Verfasst: 12. Oktober 2005 11:28
von macman
m.trix hat geschrieben:In der von Qt erstellenten qrc_app.cpp stehen die Icons drin. Deswegen versteh ich nicht wirklich warum die Icons nicht eingebunden werden.
Nimm die Qt-Hilfe und such mal nach "Setting the Application Icon", Suchbegriff in Anführungszeichen.
m.trix hat geschrieben:Bei F1 soll anstelle eines popup die Hilfe.pdf geöffnet werden.
Ich überlasse das dem System, denn Du weißt ja nicht mit welchem Programm der User PDFs geöffnet haben will. Unter Win wäre das so:
Code: Alles auswählen
QFileInfo fi(helpfile.fileName());
ShellExecute(NULL, QString("open").utf16(), fi.absoluteFilePath().utf16(), NULL, NULL, SW_SHOW);
Verfasst: 12. Oktober 2005 12:24
von BartSimpson
Kein wunder das kein Bild angezeigt wird.
:/app/images/logo.png muss es heisen
Verfasst: 12. Oktober 2005 12:44
von m.trix
@Bart: Das isses leider nicht. Deswegen das "prefix". Damit sollt ich mir den absoluten Pfad sparen.
@macman: Das mit dem Icon klappt herrvoragend! Mit ShellExecute bin ich gar am basteln. Vielen Dank schon mal!
Eine Frage noch bezüglich der Icons:
Ich hab ein QLabel in der app das mir anzeigt, ob der Verbindungsaufbau erfolgreich ("TRUE" bzw. "FALSE") war. Wenn ich jetz anstelle davon 2 Icons verwenden will, wie muss ich selbige dann aufrufen? Kann ich einem QLabel ein Icon zu ordnen, oder muss ich da was anderes in mein QGridLayout schmeissen?
Aber trotzdem schon mal vielen Dank!
Verfasst: 12. Oktober 2005 12:52
von macman
m.trix hat geschrieben:Kann ich einem QLabel ein Icon zu ordnen,
Da haben wir es wieder, was gerade in einem anderen Thread angesprochen wurde.
void setPixmap ( const QPixmap & )
void setPicture ( const QPicture & picture )
Verfasst: 12. Oktober 2005 13:24
von m.trix
Ok, das hätt ich selber suchen können. Danke nochmal.
Nochmal zurück zum ShellExecute:
error LNK2001: unresolved external symbol __imp__ShellExecuteW@24
fatal error LNK1120: 1 unresolved externals
Ich weis das was fehlt. Aber nicht was.
Verfasst: 12. Oktober 2005 13:48
von macman
Auch VisualStudio hat eine Hilfe

shell32.lib
Verfasst: 12. Oktober 2005 13:51
von lepsai
Wir gehen zu:
http://msdn.microsoft.com/library/defau ... xecute.asp
und stellen fest, wir brauchen shell32.lib
Verfasst: 12. Oktober 2005 13:57
von m.trix
Das hab ich auch rausgefunden. Ich dacht aber das die shellapi.h reicht. *.lib einzubinden ist mit bisher erspart geblieben.

Verfasst: 12. Oktober 2005 13:59
von lepsai
Der Fehler war ein Linker-Fehler. Der Linker hat mit den Header-Dateien wenig zu tun...
Verfasst: 12. Oktober 2005 14:03
von m.trix
Ja ja, immer auf den neuen rumhacken.

Verfasst: 12. Oktober 2005 14:27
von Goos
m.trix hat geschrieben:Ja ja, immer auf den neuen rumhacken.

Is nicht wahr, macht er auch mit den Alten *g*
Goos
Verfasst: 12. Oktober 2005 14:33
von m.trix
Dann bin ich ja beruhigt.
