Bild auf Button (QT)
-
Hallo,
ich wollte auf einen Button ein Bild zeichnen und versuchte es mit den Beispielen, die ich gefunden habe:
QPushButton* button_icon = new QPushButton ("TITLE", window); button_icon->setGeometry(x, y, 32, 32); QPixmap* pixmap = new QPixmap("data/icon_stats2.bmp"); QIcon icon(*pixmap); QSize iconSize(32,32); button_icon->setIconSize(iconSize); button_icon->setIcon(icon);
und
QPushButton* button_icon = new QPushButton ("Statistics", window); button_icon->setStyleSheet("QPushButton {image: url(data/icon_stats2.png);}"); button_icon->setGeometry(x, y, 32, 32);
Leider funktioniert beides nicht (Es hat keine Auswirkung auf den Button). Ich habe jeweils die Dateiformate jpg, png und bmp probiert. Könnt ihr mir einen Tipp geben?
-
Ehm das ist ein Fall fürs Qt Forum aber egal. Ich werde dir trotzdem antworten^^
Am einfachsten geht es so:
Bild zB. png in eine Resourcedatei .qrc eintragen
und dann mitQIcon icon; icon.addFile(QString::fromUtf8(":/pfad/bild.png"), QSize(), QIcon::Normal, QIcon::Off); pushbutton->setIcon(icon); pushbutton->->setIconSize(QSize(64, 64)); //oder sowas
Das habe ich grad aus meinem QtCreator geholt...Funktioniert also, wenn nicht siehe http://www.c-plusplus.net/forum/290337
-
Ich danke dir für deine Antwort, kannst du mir noch sagen, wie ich die Datei in eine Resoucendatei eintrage?
-
Also ich gehe davon aus, dass du den QtCreator benutzt:
Füge eine neue Datei deinem Projekt hinzu->Qt->Resourcendatei mit der Endung *.qrc
Dann nimmst du den Resourceneditor und machst ein neues Präfix(wichtig sowas wie präfix1/unterpräfix/ sonst erkennt er das manchmal nicht)
Jetzt einmal kurz builden, dann kannst du die Datei über den relativen Pfad einfügen: QIcon(":/pfad/präfix1/unterpräfix/bild.png");
Wichtig ist der Doppelpunkt
-
schrieb:
Also ich gehe davon aus, dass du den QtCreator benutzt
Den benutze ich nicht, benötige ich den zwingend?
-
Nö glaubt nicht...wäre aber einfacher. Du kannst es ja nochmal ohne die probieren mit dem kleinen Schnipsel von mir. Wenn ohne nicht geht, kannst du ja mal versuche, eine anzulegen. So sieht eine von innen aus:
<RCC> <qresource prefix="/GUI/buttons"> <file>resource/greenlight.png</file> <file>resource/powersymbol.png</file> <file>resource/redlight.png</file> </qresource> </RCC>
Die musst du dann noch in die .pro Datei einfügen und dann gehts auch...Wenn das auch nicht geht, weiß ich auch nicht...Qt ist eigtl ziemlich kulant bei solchen Dingen
-
ich danke dir für deine Hilfe, kannst du mir noch sagen, was genau die .pro Datei ist?
Mit dem Code von dir habe ich es schon probiert, wirkte sich allerdings nicht auf den Button aus. Vermutlich klappt es, wenn ich die Resourcendatei erstellt habe.
-
Es hat nun dank deiner Hilfe geklappt!
-
Wunderbar
PS: Die .pro Datei ist eine Projektdatei, die der QtCreator anlegt. Du müsstest entweder das gleich oder etwas Ähnliches haben, in die du reinschreibst, dass es z.B eine GUI-Anwendung sein soll und welche LIBS du benutzt etc.