Seite 1 von 1

Austauschen eines Bildes mit setPixmap

Verfasst: Freitag 21. Februar 2020, 15:27
von mr_egbert
Hallo zusammen,

je nach Auswahl in der Kombobox soll im Label lbl_fachraster entweder das Bild "kragfach_links" oder "kragfach_rechts" angezeigt werden.
Offensichtilch geht es so nicht, das Programmstürzt ab. Was mache ich falsch?

Code: Alles auswählen

import sys
from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import (
    QApplication,
    QComboBox,
    QLabel,
    QVBoxLayout,
    QWidget,
)

from PyQt5.QtGui import (
    QPixmap
)

class Fenster(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(400, 600)

        self.cbo_fachraster_typ=QComboBox()
        self.cbo_fachraster_typ.addItem("Kragfach links")
        self.cbo_fachraster_typ.addItem("Kragfach rechts")
        self.cbo_fachraster_typ.addItem("Test-Schaltfläche")
        self.cbo_fachraster_typ.activated[str].connect(self.cbo_fachraster_change)

        pic_kragfach_links = QPixmap(".\kragfach_links.png")
        pic_kragfach_rechts = QPixmap(".\kragfach_rechts.png")

        self.lbl_fachraster = QLabel()
        #self.lbl_fachraster.setText("Kragfach links")
        self.lbl_fachraster.setPixmap(pic_kragfach_links)

        self.layout = QVBoxLayout()
        self.layout.setAlignment(Qt.AlignTop)
        self.layout.addWidget(self.cbo_fachraster_typ)
        self.layout.addWidget(self.lbl_fachraster)

        self.setLayout(self.layout)

    def cbo_fachraster_change(self, item):
        print(item)     #Test
        if item == "Kragfach rechts":
            #self.lbl_fachraster.setText("Kragfach rechts")
            self.lbl_fachraster.setPixmap(pic_kragfach_rechts)
        if item == "Kragfach links":
            #self.lbl_fachraster.setText("Kragfach links")
            self.lbl_fachraster.setPixmap(pic_kragfach_links)
        pass

def main():
    app = QApplication(sys.argv)
    fenster = Fenster()
    fenster.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()
Viele Grüße

Re: Austauschen eines Bildes mit setPixmap

Verfasst: Freitag 21. Februar 2020, 15:30
von __deets__
Du musst dir auch die Bilder merken. Warum glaubst du machst du bei einigen Objekten die du erzeugst

Code: Alles auswählen

self.name = ...
und bei einigen nur

Code: Alles auswählen

name = ...
? Wenn dir der Unterschied bewusst geworden ist, dann sollte sich das Problem loesen lassen.

Und bitte wenn moeglich die auftretende Fehlermeldung ebenfalls posten, das macht unser Leben leichter.

Re: Austauschen eines Bildes mit setPixmap

Verfasst: Freitag 21. Februar 2020, 15:49
von Sirius3
Und am besten gleich statt einzelner Attribute ein Wörterbuch verwenden.

Re: Austauschen eines Bildes mit setPixmap

Verfasst: Freitag 21. Februar 2020, 19:00
von mr_egbert
Ups. Das war wirklich blöd. Da hatte ich wohl Tomaten auf den Augen.
Vielen Dank für die Antwort.
Und danke auch für den Tipp.

Viele Grüße und ein schönes Wochenende