Trovare le dimensioni dello spazio di lavoro (dimensioni dello schermo meno la barra delle applicazioni) utilizzando GTK

StackOverflow https://stackoverflow.com/questions/502282

  •  20-08-2019
  •  | 
  •  

Domanda

Come si crea una finestra principale che riempia l'intero desktop senza coprire (o essere coperto da) la barra delle applicazioni E senza essere massimizzato?Posso trovare l'intera dimensione dello schermo e impostare la finestra principale di conseguenza con questo:

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

ma la parte inferiore della finestra è coperta dalla barra delle attività.

È stato utile?

Soluzione

Sei totalmente alla mercé del tuo window manager per questo, e la questione chiave qui è:

senza essere massimizzato

Quindi ci restano una serie di hack, perché fondamentalmente la massimizzazione e il ridimensionamento sono due cose separate, in modo che tu possa essere in grado di ricordare dove si trovava quando non è ingrandito.

Quindi, prima di mostrarti questo orribile trucchetto, ti esorto a considerare l'utilizzo di una corretta massimizzazione e ad accontentarti.

Quindi ecco qui:

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()

Altri suggerimenti

Do you mean making the window fullscreen?

Gtk has functions for making windows fullscreen and back, see gtk_window_fullscreen() and gtk_window_unfullscreen().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top