Recherche de la taille de l'espace de travail (taille de l'écran moins la barre des tâches) à l'aide de GTK

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

  •  20-08-2019
  •  | 
  •  

Question

Comment créer une fenêtre principale qui remplit tout le bureau sans couvrir (ou être recouverte par) la barre des tâches et sans être agrandie ? Je peux trouver la taille entière de l'écran avec et définir la fenêtre principale en conséquence avec ceci:

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

mais le bas de la fenêtre est couvert par la barre des tâches.

Était-ce utile?

La solution

Vous êtes totalement à la merci de votre gestionnaire de fenêtres pour cela, et le problème clé ici est:

  

sans être maximisé

Il nous reste donc un certain nombre de hacks, parce que la maximisation et le redimensionnement sont deux choses distinctes, afin que vous puissiez vous rappeler où il était quand il n'a pas été maximisé.

Donc, avant de vous montrer ce bidouillage hideux, je vous exhorte à envisager d'utiliser la maximisation appropriée et à vous contenter de cela.

Alors, voici:

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

Autres conseils

Do you mean making the window fullscreen?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top