2009-02-02 16 views
5

¿Cómo se crea una ventana principal que llena todo el escritorio sin cubrir (o estar cubierto por) la barra de tareas ysin ser maximizado? No puedo encontrar todo el tamaño de la pantalla y ajuste con la ventana principal consecuencia con esto:Encontrar el tamaño del espacio de trabajo (tamaño de la pantalla inferior de la barra de tareas) usando GTK

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

pero la parte inferior de la ventana está cubierta por la barra de tareas.

Respuesta

9

que esté totalmente a merced de su gestor de ventanas para esto, y la cuestión clave aquí es:

sin ser maximizada

Así que nos quedamos con una serie de cortes , porque básicamente la maximización y el cambio de tamaño son dos cosas separadas, para que puedas recordar dónde estaba cuando no está maximizado.

Así que antes de mostrarles este espantoso truco, les pido que consideren usar la maximización adecuada y que simplemente estén contentos con ello.

así que aquí va:

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

¡Ali, esto es maravillosamente horrible! –

+0

Lars, gracias! Eso es un gran elogio! –

Cuestiones relacionadas