2011-04-26 125 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