我已经创建了一个无框架的 Qt/QML 窗口,我真的很想知道设置其“始终在顶部”系统菜单标志的任何编程方式。单击ALT+SPACE我可以调出无框窗口的系统菜单,通过单击“始终在顶部”选项,窗口确实始终位于顶部,但我还没有找到一种编程方式来做同样的事情。Qt.WindowStaysOnTopHint
不起作用,尝试也wmctrl -r "window name" -b add,above
不起作用,即使wmctrl
对其他窗口有效。wmctrl
不适用于我感兴趣的窗口显然与N/A
机器名称列有关wmctrl -l
:
francisco@Ubuntu:~$ wmctrl -l
0x02600006 0 Ubuntu Área de trabalho
0x03c00002 0 Ubuntu XdndCollectionWindowImp
0x03c00005 0 Ubuntu unity-launcher
0x03c00008 0 Ubuntu unity-panel
0x03c0000b 0 Ubuntu unity-dash
0x03c0000c 0 Ubuntu Hud
0x046000b3 0 Ubuntu How to make a window aways on top? - Stack Overflow - Mozilla Firefox
0x0520000b 0 N/A Qt Creator
0x05002396 0 Ubuntu francisco@Ubuntu: ~
0x0540000b 0 N/A backlight
我也经历了这个过程,但对于用户询问,它对我也不起作用,同样的行为。已_NET_WM_STATE_ABOVE
设置,但聚焦窗口,然后再次检查标志,它不再存在,仅在单击系统菜单时才具有粘性。
这是 QML:https ://gist.github.com/oblitum/8050586
相关askubuntu问题:https ://askubuntu.com/questions/394998
编辑
注意
在相关的 askubuntu 问题中,发现 wmctrl 上应该存在一个错误,用于通过名称定位某些窗口。使用wmctrl -i -r <window id> -b add,above
也解决了这个问题。