ios - 用Qt获得类似iOS7的模糊效果

标签 ios qt blur qdialog

我在问自己如何获得类似 iOS 7 的模糊/透明效果。像这样:

Blur effect on iOS7
(来源:ilounge.com)

我想将其应用于整个 QDialog。我知道如何获得良好的透明度,但不知道如何获得这种模糊。

有人可以帮忙吗?

非常感谢!

最佳答案

基本上,您需要先获取桌面的屏幕截图。然后你需要模糊它。然后可能将图像保存到硬盘驱动器。然后你需要将它设置为对话框的背景。

然后您还需要将每个按钮的背景设为透明。

如果您使用QGraphicsViewOpenGL,最后三个步骤可能会有很大不同。

http://qt-project.org/doc/qt-5.0/qtgui/qscreen.html#grabWindow

http://qt-project.org/doc/qt-5.0/qtwidgets/desktop-screenshot.html

实际抓取屏幕的代码行:

QScreen *screen = QGuiApplication::primaryScreen();
if (screen)
    originalPixmap = screen->grabWindow(0);

在Qt 4.8中,以前是这样的:

http://qt-project.org/doc/qt-5.0/qtgui/qpixmap.html#grabWindow

要模糊屏幕截图,请使用:

http://doc-snapshot.qt-project.org/4.8/qgraphicsblureffect.html

您可能需要将它保存到硬盘以便 QStylesheets 能够找到它。

要设置背景图像,请尝试这样的操作:

http://qt-project.org/doc/qt-5.0/qtwidgets/stylesheet-reference.html#background-image-prop

如何设置样式表的示例:

qApp->setStyleSheet("QLineEdit { background-color: yellow }");

http://qt-project.org/doc/qt-4.8/stylesheet-examples.html

http://qt-project.org/forums/viewthread/1397

希望对您有所帮助。

关于ios - 用Qt获得类似iOS7的模糊效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883902/

相关文章:

linux - CMAKE_PREFIX_PATH 没有帮助 CMake 找到 Qt5

javascript - 区分内页和外页的焦点丢失?

ios - 模糊效果子层不会随着 xib 消失

ios - 带有 UISegmentedControl AutoLayout 的 UIToolbar(/全宽)

ios - UIDocumentInteractionViewController 是否支持视频?

iphone - UITextView行高问题

c++ - 带有Qt 4.8.5的Netbeans 7.3.1-无法编译

qt - 如何在 ListView 之外访问 QML 中的 QSortFilterProxyModel 元素

iphone - 我的 Default.png 使用什么样的图像?我正在使用 iPhone 5's native resolution WITH the status bar, but it won' t 工作

java - Android 盒子模糊算法