2017-05-22 6 views

Antwort

0

Sie sollten zunächst ein transparentes Bild haben, bei dem alles außer dem Menü leere Pixel sind (Format png).

Ihre pyqt-Anwendung kann nicht zwischen Hintergrund und Vordergrund unterscheiden.

können Sie versuchen, und entfernen Sie das Hintergrundbild Online here

+0

Danke. Es klappt. – Statistician

+0

Sie können die Antwort akzeptieren, wenn es Ihnen geholfen hat :) –

1

versuchen diese Ansätze:

  1. self.setStyleSheet ("background-color: transparent;)
  2. self.setFlags (Qt.WA_TranslucentBackground)
  3. Sie haben auch die Möglichkeit, eine Maske
up
def make_transparent(self): 

    self.setStyleSheet("background: transparent;") 

    mMask = QPixmap(self.width(), self.height()) 
    mMask.fill(Qt.transparent) 

    p = QPainter() 
    p.begin(mMask) 
    p.setPen(Qt.red) 
    p.setBrush(QBrush(Qt.red)) 

    p.drawRect(QRect(0, 0, 1000, 1000)) 

    p.end() 

    self.setMask(mMask.mask()) 

Einfach an die gewünschte Größe und Farbe anpassen.

+0

Danke, aber ich verstehe nicht vollständig. Ich lade Icon von QIcon in QAction und füge dann zum Menü hinzu. Was soll ich setStyleSheet für etc. anwenden? – Statistician

+0

Zusammenfassend haben wir: 1-das Stylesheet kann in allem angewendet werden, das eine Art Widget mit einer CSS-Syntax ist, so dass Sie das personalisieren können. 2- Ein Flag, das auf ein Objekt als eine Art von Eigenschaft angewendet wird, die Sie überschreiben können, sehen Sie einfach in der API nach. 3- Der letzte Fall besteht zum Beispiel darin, ein Pixmap aus nichts zu erstellen, indem man seine Größe festlegt und es transparent macht, dh man erstellt ein eigenes transparentes Pixmap, danach wird es auf das QObject angewendet, mit dem man es erstellt transparent und der Rest der Dinge darin würde feste Farbe behalten. – yurisnm

Verwandte Themen