Qt QGraphicsDropShadowEffect wird nicht angezeigt

Ich bin die Schaffung eines benutzerdefinierten Widget my_widget Erben von QWidget .

Hier habe ich ein Label, auf das ich QGraphicsDropShadowEffect anwenden QGraphicsDropShadowEffect aber es scheint nicht zu funktionieren, da ich keine Schatten sehe.

Mein Code ist in Python und es ist:

 eff = QGraphicsDropShadowEffect() self.my_widget_label.setGraphicsEffect(eff) 

Ich habe verschiedene Änderungen an diesem Code ohne Erfolg ausprobiert.

Nach einer Durchsuchung auf Google stieß ich auf viele ähnliche Fragen ohne Antworten.

Was könnte die Ursache sein? Wie bekomme ich den Schatten?

3 Solutions collect form web for “Qt QGraphicsDropShadowEffect wird nicht angezeigt”

Sehen Sie, ob das für Sie funktioniert:

 #!/usr/bin/env python #-*- coding:utf-8 -*- import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4.QtCore import * from PyQt4.QtGui import * class testShadow(QWidget): def __init__(self, parent=None): super(testShadow, self).__init__(parent) self.resize(94, 35) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setObjectName("verticalLayout") self.label = QLabel(self) self.label.setText("Text Label") self.shadow = QGraphicsDropShadowEffect(self) self.shadow.setBlurRadius(5) self.label.setGraphicsEffect(self.shadow) self.verticalLayout.addWidget(self.label) if __name__ == "__main__": import sys app = QApplication(sys.argv) main = testShadow() main.show() sys.exit(app.exec_()) 

Bild

Arbeitet für mich in C ++. Ich habe folgendes in einem QDialog mit einem QLabel Objekt namens titleLabel . Ich verwende Qt 4.8.4 auf einem Windows XP Computer.

 QGraphicsDropShadowEffect* eff = new QGraphicsDropShadowEffect(this); eff->setBlurRadius(5); titleLabel->setGraphicsEffect(eff); 

Ich habe nur versucht, diese (und benutzte es erfolgreich) in QGraphicsScene Situationen zu verwenden. Das funktioniert für mich, beim Versuch, es auf eine normale QWidget tatsächlich stürzt die gesamte Anwendung:

 from PyQt4 import QtGui class Graphics(QtGui.QWidget): def __init__(self): super(Graphics, self).__init__() layout = QtGui.QVBoxLayout(self) layout.setMargin(0) shad = QtGui.QGraphicsDropShadowEffect(self) shad.setBlurRadius(5) self.scene = QtGui.QGraphicsScene(self) self.view = QtGui.QGraphicsView(self) self.view.setScene(self.scene) text = self.scene.addText("Drop Shadow!") text.setGraphicsEffect(shad) layout.addWidget(self.view) if __name__ == "__main__": app = QtGui.QApplication([]) main = Graphics() main.show() main.raise_() app.exec_() 
  • PyQt-Sendeparameter zu Steckplatz bei Anschluss an ein Signal
  • Dedenting-Funktion in QPlainTextEdit verursacht segfault, wenn letzte Zeile beteiligt ist
  • Wie man ein PDF in seinem wahren Maßstab mit Poppler anzeigt?
  • Einstellen der Textfarbe einer Tooltip in PyQt
  • Fenster Icon von Exe in PyQt4
  • PyQt4: Liste aller Labels in QListWidget abrufen
  • PyQt - Implementiere ein QAbstractTableModel für die Anzeige in QTableView
  • Einheit und Funktionsprüfung einer PySide-basierten Anwendung?
  • Wie kann ich QListWidjet Inhalt zu / von QSetting mit PyQt4 speichern und laden?
  • So erlauben Sie die Größenänderung von QMessageBox in PyQt4
  • PyQt4 SIGNAL / SLOT Problem bei der Verwendung von Unterverzeichnissen
  • Python ist die beste Programmiersprache der Welt.