Fenstericon im QMainWindow

Alles rund um die Programmierung mit Qt
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Fenstericon im QMainWindow

Beitrag von BartSimpson »

Hallo, ich habe mit dem Dessigner ein QMainWindows gebaut. Das Icon für dieses kommt aus einer Resoursen Datei. Nur leider macht eintweder der Dessigner oder der uic was falsch es entsteht immer ein falscher Header.
statt HauptBasis->setWindowIcon(QIcon(QString::fromUtf8(":/Bilder/Symbol.png")));
wird immer
HauptBasis->setWindowIcon(QIcon(QString::fromUtf8(":/Bilder/Bilder/Symbol.png")));
erzeugt. So das man das jedesmal per Hand ändern muss. Wo liegt der Bug??
Zuletzt geändert von BartSimpson am 4. Oktober 2005 10:43, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Fenstericon im QMainWindow

Beitrag von macman »

Dessigner? Ist das ein Tick von Dir oder warum schreibst Du das konsequent falsch? Und was das überflüssige 'Bilder' angeht, nimm einfach den Prefix 'Bilder' aus der Resource raus. Du hast so einmal den Prefix 'Bilder', plus 'Bilder' aus dem Pfad.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Der Prefix ist drinn, weil es noch andere Resourchen darin gibt.
Da sowas ja laut Doku gehen soll, muss ja eins von beiden nicht ganz richtig funktionieren. Entweder der Dessigner oder der uic??
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Der DESIGNER, nicht DESSIGNER legt zu jeder Ressource einen Prefix an, beides funktioniert hervorragend.

Deine Eingabe ist richtig und deine Ausgabe ist richtig. Du sagst du willst etwas anderes haben, was aber primär weder mit dem uic noch mit dem DESIGNER zusammenhängt.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Der Designer liest ja korrekt die Resourcen Datei ein. Nur und man kann das Icon wählen. Nur nacher im ui.h steht denn Mist:(
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Also, aus obigem Beispiel:
HauptBasis->setWindowIcon(QIcon(QString::fromUtf8(":/Bilder/Bilder/Symbol.png")));
kommt aus dem UIC, wenn dein Prefix Bilder ist.

DAS IST RICHTIG!!!

Das muss so sein. Denn Prefix prefix wird zu :/$prefix$/RESSOURCE

Ich verstehe nicht, was da falsch sein soll.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Aber genau so wird denn das Icon nicht angeigt. Erst wenn man dann per Hand die ui.h wieder ändert geht es. Es scheint, das der Designer damit Probleme hat, wenn man in der Resurcendatei die Alias Finktion benutzt. Denn dann zerstört der Designer auch machmal die Datei:(
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Kann ich nicht bestätigen und ist auch nicht so bei 4.0.0 und 4.0.1, denn das mache ich ständig.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

bei mir werden vom Designer unter 4.0.1 die Dateien regelmäßig zerlegt sobald die Aliasfunktion benutzt wird. Bei 4.0.0 war es auch so.
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag von Allroad »

so, das Problem mit dem WindowIcon habe ich nun auch...: ich versuch meinem QMainWindow ein Icon zu verpassen, der Compliler meckert nichts (auch nicht wenn ich einen falschen File-Name angib), aber ein Icon wir nicht angezeigt... ratlos...!

Code: Alles auswählen

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>Img/up.png</file>
    <file>Img/down.png</file>
    <file>Img/left.png</file>
    <file>Img/right.png</file>
    <file>Img/icon.png</file>    // <-- das hier soll mein WindowIcon sein 
</qresource>
</RCC> 


...und

Code: Alles auswählen

 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
...
setWindowIcon(QIcon(QString::fromUtf8(":/Img/icon.png")));
...
}
das icon.png habe ich an einer anderen Stelle im Programm geladen (als Pixmap) und da hat's funktioniert...!
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag von Allroad »

hmm... hat keiner ein Tipp für mich? Ich hab das Icon sogar im Menü einfügen können, ich versehe nicht wieso das nicht als WindowIcon funktioniert...!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Was soll da für ein Tipp kommen? Ich nutze folgendes und das funktioniert.

Code: Alles auswählen

setWindowIcon(QIcon(":/images/docicon.png"));
Lass das fromUtf8 weg, ist das Einzige was mir dazu einfällt.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag von Allroad »

macman hat geschrieben:

Code: Alles auswählen

setWindowIcon(QIcon(":/images/docicon.png"));
hatte ich am Anfang auch so... hat aber auch nicht funk. Naja, muss wohl damit leben!
Allroad
Beiträge: 61
Registriert: 23. Oktober 2007 10:19
Kontaktdaten:

Beitrag von Allroad »

So, nun bin ich doch schlauer geworden: ich hab mein Code mit nachhause genmmen, und es da unter Windows kompiliert... und siehe da, es funktioniert! Ich kann endlich mein WindowIcon sehen!

Also: anscheinend funktioniert die setWindowIcon()- Funktion nur unter Windows... (?)!
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Ich hab unter Linux keine Probleme mit dem WindowIcon, zumindest in QT 4.3.2
Antworten