2011-04-26 133 views
3

我想在X11中绘制弹出窗口。像按下音量或亮度控制按钮时出现在KDE和GNOME中的滑块。这就是它在GNOME中的样子:brightness slider in GNOME在X11中绘制弹出窗口

我应该使用什么库来创建这样的弹出窗口(与普通窗口不同,它们应该是无边框等,可能还有一些透明度)?如果有Python的绑定会很好。

回答

1

这是在GTK +中完成的。最简单的事情可能是找到创建该代码并复制它的代码(我的系统具有不同的卷通知器,我不容易找到该代码)。

粗略地说,你要做的是创建一个GtkWindow,set_decorated(FALSE),set_position(GTK_WIN_POS_CENTER),沿着这些行。

我不确定最好的set_type_hint()。可能是TYPE_HINT_NOTIFICATION或TYPE_HINT_SPLASHSCREEN。如果设置了类型提示,则可能不需要set_decorated或set_position,因为类型提示可能暗示那些具有多个窗口管理器的提示。

+0

谢谢!将类型提示设置为TYPE_HINT_DOCK使其看起来完全如我所愿=) – 2011-04-28 16:01:00

+0

DOCK可能是误导性的;窗口管理员可以合法地做一些只对实际码头有意义的事情,比如保持最大化的窗口不与其重叠。 NOTIFICATION和SPLASHSCREEN已经在推动它。 – 2011-04-28 20:32:40

+0

pygtk中没有NOTIFICATION,如果没有设置set_keep_above,SPLASHSCREEN可以被其他窗口覆盖。用set_keep_above SPLASHSCREEN确实可能会更好。 – 2011-04-29 00:38:24