【问题标题】:Transparent window in QtQt中的透明窗口
【发布时间】:2011-03-04 21:19:34
【问题描述】:

如何在 Qt for Linux 中创建透明窗口。我尝试了以下方法,但它不起作用:

myWidget::myWidget(QWidget *parent) : QWidget(parent, Qt::FramelessWindowHint) {
   setWindowOpacity(0.4);
}

【问题讨论】:

  • 我想你已经尝试过 windowOpacity 了?
  • 透明窗口对我来说很好用。我只是忘记了不透明度。这个问题本身就提醒我使用它。现在一切正常!谢谢!为此+1。 :)

标签: c++ linux qt


【解决方案1】:

"注意在X11下你需要有 一个正在运行的复合管理器,并且 X11 特定 _NET_WM_WINDOW_OPACITY atom需要得到支持 您正在使用的窗口管理器。”

https://doc.qt.io/qt-5/qwidget.html#windowOpacity-prop

您使用的是什么窗口管理器? http://en.wikipedia.org/wiki/Compositing_window_manager#List_of_compositing_window_managers

您的服务器是否支持“复合扩展”? http://en.wikipedia.org/wiki/Composite_(graphics)

你的卡支持吗?

【讨论】:

  • 我使用 gnome 作为窗口管理器。在第一篇文章中的 MS Windows 代码上工作正常
  • 是的,在 Windows XP 及更高版本上(当然有适当的视频卡),因为他们有简单的复合管理器。您的 X11 服务器中必须有复合管理器才能使其工作。
【解决方案2】:

【讨论】:

    【解决方案3】:

    我有类似的问题,但在 Windows 上,不确定它是否对 Linux 有帮助 代替 Qt::FramelessWindowHint 使用 Qt::SplashScreen。我可以在我的其他小部件之上有一个无框且透明的窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多