Seite 1 von 1

pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 15. Juni 2017 09:48
von Tomaxx
Hallo zusammen

Ich verwende

Code: Alles auswählen

    QString fileName = QFileDialog::getOpenFileName(this, "Bildquelle wählen", QDir::currentPath(), "Images (*.jpg)");
    QPixmap pixmap(fileName);
    QIcon ButtonIcon(pixmap);
    ui->pushButton_5->setIcon(ButtonIcon);
um in Laufzeit des Bild eines Buttons zu ändern. Auf dem Rechner auf dem ich programmiere klappt alles prima. Installiere ich das Programm auf einen anderen Rechner, durchläuft das Programm zwar ohne Klagen die Routine, aber es wird kein Bild angezeigt. Gibt es hier Abhängigkeiten, die ich vielleicht nicht beachte?

Thomas

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 15. Juni 2017 10:14
von Espresso
Pures Raten: findet Qt seine qjpeg4.dll auf dem Rechner (oder welche Version der dll auch immer)

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 15. Juni 2017 11:28
von Tomaxx
qjpeg.dll ist auf beiden Rechnern vorhanden.

Danke für den Tipp

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 15. Juni 2017 17:30
von Christian81
Nur weil sie vorhanden ist heißt es nicht, dass es auch als Plugin geladen werden kann. Wie Espresso schon sagt - prüfen ob das Bild auch wirkluich geladen wird (siehe z.B. QPixmap::load() und QPixmap.isNull())

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 16. Juni 2017 08:35
von Tomaxx
Kann das denn sein, dass die gleiche Datei, die jeweils im Programmverzeichnis liegt, auf verschiedenen rechnern mal geladen wird und mal nicht?

Faszinierend. Mit der gleichen exe auf verschiedenen Rechnern klappt es mal und mal nicht.

Da stehe ich jetzt echt auf dem Schlauch

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 16. Juni 2017 09:34
von Tomaxx
Fehlt mir vielleicht auf dem Zielrechner irgend eine Bibliothek, die beim Kompilieren nicht angemeckert wird?

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 16. Juni 2017 10:39
von Espresso
Baue doch mal einen Message-Dialog ein, ob das Bild geladen wird, wie Christian geschrieben hat.
Qt hat mich an solchen Stellen schon zur Verzweiflung gebracht, das war mit DB-DlLLs,
bei mir kam ich dann mit einer qt.conf weiter, die dem Programm sagt, wo die DLLs liegen.
Möglicherweise hat ja dein Entwicklungs-PC andere Pfade konfiguriert.

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 16. Juni 2017 10:42
von Tomaxx

Code: Alles auswählen

void MainWindow::on_pushButton_7_clicked(){
    QString fileName = QFileDialog::getOpenFileName(this, "Bildquelle wählen", QDir::currentPath(), "Images (*.jpg)");
    QPixmap pixmap(fileName);
    if (!pixmap){
        meldung("Bild konnte nicht geladen werden!");
    }
    QIcon ButtonIcon(pixmap);
    ui->pushButton_5->setIcon(ButtonIcon);
}
Das ist mein aktueller code.
Auf dem Entwicklungsrechner keine Meldung und Bild lädt,
Auf der Zielmaschine Meldung und kein Bild.

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 16. Juni 2017 13:32
von Tomaxx
Ich hebe eine Lösung gefunden, obwohl sie nicht so ist wie ich gehofft habe.
Ich kann PNGs laden, aber keine JPGs

Weiss jemand, wie das kommen kann?

Re: pushButton->setIcon(ButtonIcon) geht nicht auf allen Rechnern

Verfasst: 16. Juni 2017 16:53
von Christian81