首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt QGraphicsDropShadowEffect未显示

Qt QGraphicsDropShadowEffect未显示
EN

Stack Overflow用户
提问于 2012-12-22 03:35:46
回答 3查看 5.9K关注 0票数 2

我正在创建一个继承自QWidget的自定义小部件my_widget

在这里,我有一个标签,我想要应用QGraphicsDropShadowEffect,但它似乎不起作用,因为我没有看到任何阴影。

我的代码是用Python编写的,它是:

代码语言:javascript
运行
复制
eff = QGraphicsDropShadowEffect()
self.my_widget_label.setGraphicsEffect(eff)

我尝试了对此代码进行各种修改,但都无济于事。

在谷歌上做了彻底的搜索后,我遇到了许多类似的问题,但都没有答案。

可能的原因是什么?我怎样才能得到阴影?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-24 11:24:16

看看这对你是否有效:

代码语言:javascript
运行
复制
#!/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_())

票数 2
EN

Stack Overflow用户

发布于 2012-12-22 05:29:26

在C++对我很管用。我在包含名为titleLabelQLabel对象的QDialog中执行了以下操作。我在Windows XP计算机上使用Qt 4.8.4。

代码语言:javascript
运行
复制
QGraphicsDropShadowEffect* eff = new QGraphicsDropShadowEffect(this);
eff->setBlurRadius(5);
titleLabel->setGraphicsEffect(eff);
票数 4
EN

Stack Overflow用户

发布于 2012-12-24 11:35:50

我只尝试过在QGraphicsScene环境中使用它(并成功地使用了它)。这对我来说很有效,而试图在普通的QWidget上设置它实际上会导致整个应用程序崩溃:

代码语言:javascript
运行
复制
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_()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13996130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档