Jesteś całkowicie na łaskę swojego menedżera okien dla tego, a kluczową kwestią jest:
bez zmaksymalizowane
Więc jesteśmy w lewo z kilku hacki , ponieważ zasadniczo maksymalizacja i zmiana rozmiaru są dwiema osobnymi rzeczami, abyś mógł zapamiętać, gdzie był, gdy jest nieosaksymalizowany.
Zanim pokażę ci ten ohydny hack, zachęcam cię do rozważenia użycia odpowiedniej maksymalizacji i po prostu ciesz się z tego.
Więc tu idzie:
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()
Ali, to jest piękne straszne! –
Lars, dzięki! To jest wielka pochwała! –