我从我的主窗口打开一个模式窗口,我的兴趣是使背景变暗,所以顶窗完全可见,但主窗口看起来像“阴影”。QT:阴影窗口效果(熄灯)
0
A
回答
2
您可以在主窗口中显示一些半透明的小部件,它会创建阴影效果。
例如,这样的小部件。
class Overlay : public QWidget
{
public:
Overlay(QWidget *parent) {
setPalette(Qt::transparent);
setAttribute(Qt::WA_TransparentForMouseEvents);
}
protected:
void paintEvent(QPaintEvent *event) {
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(QBrush(QColor(0,0,0, 150)));
painter.setPen(Qt::NoPen);
painter.drawRect(rect());
}
};
然后创建这个小部件,调整大小和显示:
overlay_.reset(new Overlay(this));
overlay_->resize(size());
overlay_->setVisible(true);
您可以通过改变的paintEvent刷阴影色和transperancy玩。 希望这是你想要的效果。
0
这是由窗口管理器添加这种效果。
例如,KWin和Mutter都有办法处理对话。 KWin确实遮蔽了主窗口,我认为Mutter也会带来一些额外的效果。
在Mac OS中,模态窗口已经具有特殊的属性,将其专注于它的专利窗口的关系。
窗户处理这种方式是通过强调我认为模态的重点。但它确实是窗口经理的工作,并且根据用户的喜好来选择应该激活的效果。
相关问题
- 1. WPF窗口阴影效果
- 2. 盒阴影效果
- 3. 阴影效果的影响
- 4. 阴影的窗口样式?
- 5. “熄灯”有效性检查
- 6. NSString的阴影效果
- 7. 插图阴影效果
- 8. 内阴影效果的UIView
- 9. System.TypeLoadException的阴影效果
- 10. 拉斐尔阴影效果
- 11. QML内阴影效果
- 12. jquery.com的阴影效果
- 13. UISegmentedControl的阴影效果?
- 14. 箱子阴影效果
- 15. UIBezierpath阴影效果 - iOs
- 16. WPF删除阴影效果的影响
- 17. 盒子阴影效果不适用于幻灯片
- 18. 创建双箱阴影效果(如两个聚光灯)
- 19. 在Qt中使用QGraphicsRectItem的阴影效果
- 20. 带有浮动阴影的动画阴影效果
- 21. 如何在android中为阴影制作阴影效果?
- 22. 我想在特定的航空窗口上禁用阴影效果
- 23. 空气2.6无铬窗口带阴影
- 24. 从弹出窗口移除阴影
- 25. 把阴影放在窗口上extjs
- 26. 如何操纵窗口的阴影?
- 27. 边界的窗口与阴影
- 28. 无边界窗口带阴影和blurbehind
- 29. 替代QGraphicsDropShadowEffect无框窗口的阴影
- 30. Three.js灯光和阴影
谢谢,看起来很有希望!将尝试它。有一行我不明白:overlay_.reset(new Overlay(this));那是干什么的?重置方法在哪里? –
我试过它没有重置调用,它打开一个覆盖,但它看起来灰色没有alpha通道,所以原始背景窗口不可见。 –
好的,现在正在进行一些小的改动。谢谢! –