python - 设计师小部件阴影?
问题描述
我在我的主窗口中添加了一个小部件,我想给它一个类似的节目box-shadow: 3px 3px 25px #111;
我在上面尝试通过转到小部件change stylesheet
选项并添加如下代码:
background-color:#fff;
border:4px solid blue;
box-shadow: 0px -3px 5px #a6a6a6;
前两个属性给出了预期的效果,但 box-shadow 不起作用。
如何使用 Python QT Designer 并向小部件添加框阴影?
解决方案
Qt StyleSheet 不是 CSS,但它是一种实现某些功能的技术,其中不包括 box-shadow。如果你想实现类似的东西,那么你应该使用 QGraphicsDropShadowEffect:
import sys
from PyQt5.QtCore import QPoint, Qt
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import (
QApplication,
QGraphicsDropShadowEffect,
QMainWindow,
QVBoxLayout,
QWidget,
)
def main():
app = QApplication(sys.argv)
main_window = QMainWindow()
container = QWidget()
container.setContentsMargins(3, 3, 3, 3)
main_window.setCentralWidget(container)
widget = QWidget()
widget.setAutoFillBackground(True)
lay = QVBoxLayout(container)
lay.addWidget(widget)
effect = QGraphicsDropShadowEffect(
offset=QPoint(3, 3), blurRadius=25, color=QColor("#111")
)
widget.setGraphicsEffect(effect)
main_window.resize(640, 480)
main_window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
建议您阅读 Qt Stylesheet 参考资料:
推荐阅读
- makefile - 获取已定义变量的值
- ios - Detox:如何使用 detox 在通知中心点击 iOS 推送通知
- javascript - 数字给出意想不到的结果(小数)
- reactjs - 将预先存在的静态 HTML 页面添加到 React/Gatsby 站点的最快方法
- python - Flask 服务器端会话
- c# - 如何在 c# 属性中使用字符串格式?
- python - Python:选择来自多个用户的最新条目的行
- typescript - 基类返回对扩展类类型不匹配的引用
- javascript - 函数在反应JSX中没有返回值
- android - 使用 sharedPreferences 获取 NullPointerException