python - 如何在pyqt5中添加底部阴影效果?
问题描述
我一直在计划像这样设计我的QPushButton
有什么建议吗?
解决方案
在样式表中设置比background-color
to暗一点的颜色。border-bottom
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class Button(QPushButton):
def __init__(self, color, *args, **kwargs):
super().__init__(*args, **kwargs)
color = QColor(color)
shadow = color.darker(115).name()
text = 'black' if color.value() > 186 else 'white'
self.setStyleSheet(f'''
QPushButton {{
color: {text};
background-color: {color.name()};
padding: 12px;
border-radius: 4px;
border-bottom: 4px solid {shadow};
}}''')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = QScrollArea(widgetResizable=True)
w = QWidget(); window.setWidget(w)
grid = QGridLayout(w, spacing=40)
colors = QColor.colorNames(); colors.remove('transparent')
for i, v in enumerate(colors):
grid.addWidget(Button(v, f'{v} button'.title()), *divmod(i, 7))
window.show()
sys.exit(app.exec_())
推荐阅读
- flutter - 如何在本地保存数据flutter
- c++ - 包含 windows.h 后的命名空间冲突
- javascript - Mongoose 从数组中选择特定字段
- python - 临时zip两个临时文件
- python - 我怎样才能通过beautifulsoup 获得这个href?
- security - 如果我们开始在密码生成中使用梵文脚本会怎样?
- firebase - 当用户清除应用数据时,有没有办法检索新的 FCM 令牌?
- java - 为什么泛型类型信息在第二次调用后丢失?
- typescript - 无法读取未定义 Jest 的属性“查找”
- python - AttributeError:模块“razorpay”没有属性“客户端”