Portál AbcLinuxu, 13. května 2025 22:55

Dotaz: Python Plasma - jak zobrazit vygenerovanou pixmapu

Marián Kyral avatar 23.1.2011 13:01 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Python Plasma - jak zobrazit vygenerovanou pixmapu
Přečteno: 121×
Odpovědět | Admin
Zdravím, mám plasmoid v pythonu, který je tvořen pomocí Plasma.Label. Plasmoid zobrazuje text, ale chtěl bych zobrazit i graf, který nakreslím na QPixmap pomocí QPainter. Kreslení problém není, bohužel netuším, jak výsledek zobrazit.

Plasma.Label umí nastavit obrázek jen ze souboru: setImage (self, QString path). Myslel jsem, že to obejdu přes QLabel, které pixmapu nastavit umí, ale tu se mi nepodařilo přidat do Layoutu :-( Hledal jsem inspiraci u jiných plasmoidů - nejslibněji vypadá Now Rocking, ovšem kód je hodně komplikovaný a moje omezené znalosti objektového programování a pythonu nestačí k pochopení co se to tam děje a hlavně proč se to děje a proč právě takhle.

Vím o tom, že můžu použít metodu appletu paintInterface(), ale pak si musím umístění jednotlivých prvků řešit sám. Rád bych to nechal na Plasmě/Qt vzhledem k plánovanému rozšíření o další prvky.

Kousek kódu:
       # We need a layout
        self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet)
        self.setLayout(self.layout)

        # A label
        self.label = Plasma.Label(self.applet)
        self.label.setScaledContents(True)
        self.label.setAlignment(Qt.AlignCenter)

        # add it to current layout
        self.layout.addItem(self.label) 

        # Prepare pixmap
        pixmap = QPixmap();
        painter = QPainter();

        painter.begin(pixmap)
        painter.setPen = QColor('green')
        painter.drawText(self.label.rect(), QtCore.Qt.AlignCenter, text)

        #self.label.setText(text)
        self.label.set???(pixmap)

Potřeboval bych buď nějak nastavit tu pixmapu na Plasma.Label, nebo přidat do layoutu objekt QLabel, nebo použít nějaký jiný prvek, podobně jako v Now Rocking.

Teď mě napadlo zkusit self.label.nativeWidget().setPixmap(pixmap). Sice to nespadne na chybu, ale label je prázdný :-(
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.