Inversione messa a fuoco è OS specifica:
pyglet non prevede il controllo finestra specifica del sistema operativo. Quindi molto probabilmente dovrai usare un trucco ad-hoc per soluzioni rapide & o provare ad avvicinarti con estensioni come pywin32 usando Windows API e/o COM per elencare attraverso lo stack di applicazioni della barra delle applicazioni per invertire il furto di messa a fuoco. Puoi anche provare a creare la tua finestra personale (contenitore, che puoi manipolare) per poter delegare il suo contesto a Pyglet.
Ritardare rubare fuoco
D'altra parte, se secondo la vostra logica di programma che si desidera solo per ritardare l'effettiva proiezione di voi l'applicazione si può giocare con la visibilità:
import pyglet
w = pyglet.window.Window()
w.set_visible(False)
pyglet.app.run()
Quindi, se si non vuoi giocare con la delega del contesto della finestra, puoi probabilmente fare quanto segue:
- avviare la tua applicazione senza mostrare ing finestra
- trovare la messa a fuoco della finestra attiva corrente ottenendo il manico/id
- mostrare la vostra finestra
- restituire il fuoco alla finestra precedente
È possibile che questo assume a lavorare con le finestre API . Penso che MSDN abbia degli esempi sulla modifica del focus .. Se conosci il PID della tua finestra corrente (applicazione principale) questo dovrebbe semplificare il passo 2.
fonte
2012-12-15 14:50:29
Dandogli un secondo pensiero, hai un caso strano di spuntare la finestra di pyglet w/o dargli l'input. Forse hai davvero bisogno di imparare come incorporare il contesto OpenGL dell'applet pyglet nella tua applicazione più grande? –