Anzeige:
Ergebnis 1 bis 11 von 11

Thema: icon setzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749

    icon setzen

    Hallo ich versuche ein icon für meine anwendung in die titelleiste zu setzen...
    ich mache das so:

    Code:
    m.setIcon(QPixmap::fromMimeSource("icon.png"));
    includen tue ich qimage.h

    aber es geht nicht....er sagt:
    Qpixmap::fromMimeSource: cannot find image from mime source

    Hmm...was muss ich denn dazu machen ? Das icon.png liegt in einem images ordner der unter den src-dateien liegt...

    Ach ja...ne frage noch: Welches proggi benutzt ihr denn um eure Icons zu zeichnen ? Ich würde gerne ein einfaches benutzen weiß aber nicht welches sich gut eignet um ein kleines title-icon zu erstellen....
    Geändert von Mat (17-10-2005 um 21:36 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.05.2003
    Beiträge
    226
    Hallo Mat,

    ich benutze Icons für meine Toolbar. Das sieht dann so aus:

    fileOpenAction->setIconSet ( QIconSet(QPixmap("icons/open.png")) );

    Ich vermute also, dass du deinen Unterordner noch mitangeben musst.

    Zum Thema Icons erstellen: Ich habe ArtIcons Pro benutzt. Davon gibt es eine 30-Tage-Testversion. Das Programm ist ziemlich gut. Man sieht immer eine kleine Vorschau und kann den Hintergrund auch unsichbar machen.

    Schöne Grüße,
    Kirstin

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    danke aber es geht immer noch nicht.
    Ich schaffe es weder für mein Hauptfenster also meine Application ein icon zu setzen noch zum Beispiel für einen PushButton.
    Mit der obigen Zeile bekomme ich immer
    cannot find icon.png in the pixmap mimesource factory.....

    Hat jemand rat ? danke

  4. #4
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    Hi,

    ich beziehe mich erstmal auf Qt4 wie man es da machen könnte!

    1. Man erstellt eine Ressourcen Datei z.B. foo.qrc
    Code:
    <!DOCTYPE RCC><RCC version="1.0">
        <qresource>
    	<file>configure.png</file>
    	<file>start.png</file>
    	<file>icon.png</file>
        </qresource>
        </RCC>
    2. Man schreibt folgende Zeile in die .pro Datei
    Code:
    RESOURCES = foo.qrc
    3. Man lädt das Icon im Quellcode mit dem Pfad ":/icon.png" (doppelpunkte nicht vergessen!)
    Code:
     QToolButton *toolText = new QToolButton();
    	toolText->setCheckable(true);
    	toolText->setAutoRaise(true);
    	toolText->setText("text");
    	toolText->setIcon(QIcon(":/icon.png"));
    unter Qt3 geht das etwas anders

    1. in der .pro datei fügt man folgendes hinzu

    Code:
    IMAGES += src/icons/arrow.png \
              src/icons/circle.png \
              src/icons/filesave.png \
              src/icons/fonts.png \
              src/icons/icon.png
    2. Dann im Quellcode z.B. folgendes
    Code:
       QToolButton* toolButton = new QToolButton();
        toolButton->setToggleButton(true);
        toolButton->setIconSet( QIconSet( QPixmap::fromMimeSource( "icon.png" ) ) );
        toolButton->setAutoRaise(true);
    Icons erstell ich mit Gimp ne gute Anleitung findest du hier http://www.gimp.org/tutorials/Creating_Icons/

    Btw: Die Icons von KDE oder Gnome (hab die Crystal Clear Icons im Auge) die kann man doch bedenkenlos im eigenen GPL Programm benutzen und auch mit im Sourcepackage verbreiten oder?

    MfG
    xmarvel
    Geändert von xmarvel (29-12-2005 um 10:49 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    Hallo, leider schaffe ich das unter QT3.3 so auch nicht. Der Fehler ist immer noch derselbe auch wenn ich die .pro erweitere...
    Ich würdegerne dem tool ein eigens icon verpassen. In meiner main wollte ich das tun und zwar so:

    Code:
    int main( int argc, char* argv[] ) 
    {        
    	QApplication app( argc, argv );
    	Tool t;
    	
    	t.setCaption("Run Simulation Tool");
    	t.setMaximumSize(1200,1000); 
    	t.setMinimumSize(280,200);
    	t.resize(1015,910);
            
    //HIER DAS WICHSTIGE:
            t.setIcon(QPixmap::fromMimeSource("icon.png"));
    	
            app.setMainWidget( &rst );
    	t.show();
    
    	int ret = app.exec();
    	return ret;
    }
    Aber so gehts auch nicht....

  6. #6
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    Halloo,
    ich schaffe es so auch nicht. Die einzige Möglichkeit für meine Application ein Icon ganz oben im Fenster anzeigen zu lassen geht so:

    Code:
    QImage img(QDir::currentDirPath() + "/src/icon.png");
        mw->setIcon(img);
    Aber es muss doch über QPixMap gehen oder ...?

    er sagt mir immer ...not found. Obwohl ich in der .pro datei alles hinzugefügt habe.
    Ich arbeite unter QT3.3 und unter Linux Debian.
    Mein Projekt ist glaube ich eine Application....

    hier mal die main die aber das Hauptwidget aufruft welches eine ToolBox ist:

    Code:
    int main( int argc, char* argv[] ) 
    {        
    	QApplication app( argc, argv );
    	EntryClass rst;
    	
    	rst.setCaption("Tool");
    	//rst.setIcon(QPixmap::fromMimeSource("/icons/icon.png"));
    	rst.setMaximumSize(1200,1000); 
    	rst.setMinimumSize(280,200);
    	rst.resize(1015,910);
    	app.setMainWidget( &rst );
    	rst.show();
    
    	int ret = app.exec();
    	return ret;
    }
    Wäre nett wenn mir jemand helfen könnte....wieder weiter meine ich ;o)

  7. #7
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    Hi Matt,

    vom Sourcecode kann ich kein Fehler feststellen aber ich denke du hast irgendeine Pfadangabe falsch gemacht (in der .pro Datei?)
    Ich hab einfach mal ein simples test app rangehängt wo ein Icon gesetzt wird vielleicht hilft es ja weiter.

    MfG
    xmarvel

  8. #8
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    Hallo, vielen lieben dank für das Beispiel! Also ich hab jetzt irgendwie noch nen anderen weg gefunden aber weiß nicht ob das so sauber ist..... Ich habe in die .pro datei den pfad zu meinem Bild gesetzt. Habe dann einfach mit uic -o image_collection.cpp -embed <projekt> <image> die image_collection.cpp erstellt und über setIcon(QPixMap::fromMimeSource()); das BIld nun ebenfalls zum Vorschein gebracht.... Vorher natürlich noch das Makefile angepasst .
    Macht man das so? Außerdem .....die image_collection....ist ja keine reine .h datei......wie nennt man die?
    Geändert von Mat (04-01-2006 um 17:11 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    das was du per Hand gemacht hat macht qmake eigentlich automatisch?!
    also ist es schon sauber nur etwas umständlich das jedes mal per hand zu machen deswegen hat man ja qmake.

    Macht man das so? Außerdem .....die image_collection....ist ja keine reine .h datei......wie nennt man die?
    versteh ich nicht ist doch egal wie du sie nennst.

    MfG
    xmarvel

  10. #10
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    ja ne sorry...wollte nur wissen ob man dazu extra noch ne .h datei braucht aber istj a n schmarrn....ist ja nur ein file mit daten also wie du schon gesagt hast.egal wies heißt....

    Danke

  11. #11
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von Mat
    Code:
    QImage img(QDir::currentDirPath() + "/src/icon.png");
        mw->setIcon(img);
    Aber es muss doch über QPixMap gehen oder ...?
    Man kann ja auch bei QPixmap einen Pfad angeben.

    Allerdings wird man dann als Basispfad QApplication::applicationDirPath benutzen, das aktuelle Verzeichnis kann ja beliebig anders gesetzt sein.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •