2009-02-02 79 views
5

如何創建填充整個桌面無覆蓋(或通過被覆蓋),任務欄沒有被最大化主窗口工作區尺寸(屏幕尺寸更小的任務欄)?我可以找到整個屏幕大小,並相應地設置主窗口:查找使用GTK

window = gtk.Window() 
screen = window.get_screen() 
window.resize(screen.get_width(), screen.get_height()) 

但窗口的底部被任務欄覆蓋。

回答

9

你是完全在這個窗口管理器的憐憫,這裏的關鍵問題是:

沒有被最大化

所以我們留下了許多的黑客,因爲基本上最大化和調整大小是兩個單獨的事情,以便您可以記住它未被最大化時的位置。因此,在我向你展示這個可怕的黑客攻擊之前,我敦促你考慮使用適當的最大化,並對它感到滿意。

所以這裏有雲:

import gtk 

# Even I am ashamed by this 
# Set up a one-time signal handler to detect size changes 
def _on_size_req(win, req): 
    x, y, w, h = win.get_allocation() 
    print x, y, w, h # just to prove to you its working 
    win.disconnect(win.connection_id) 
    win.unmaximize() 
    win.window.move_resize(x, y, w, h) 

# Create the window, connect the signal, then maximise it 
w = gtk.Window() 
w.show_all() 
w.connection_id = w.connect('size-request', _on_size_req) 
# Maximizing will fire the signal handler just once, 
# unmaximize, and then resize to the previously set size for maximization. 
w.maximize() 

# run this monstrosity 
gtk.main() 
+2

阿里,這真是太可怕了! – 2009-02-04 10:11:16