Ho un widget personalizzato e deve avviare un MessageDialog e per farmi mettere la finestra di dialogo del messaggio sopra la finestra in cui si trova il mio widget, ho bisogno di accedere alla gen gtk.window. C'è un modo per ottenere la finestra genitore GTK? GrazieÈ possibile ottenere la finestra GTK principale da un widget?
10
A
risposta
8
La documentazione GTK suggeriscono:
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
if (gtk_widget_is_toplevel (toplevel))
{
/* Perform action on toplevel. */
}
get_toplevel tornerà il widget più in alto sei dentro, anche se non si tratta di una finestra, quindi il controllo is_toplevel. Sì, qualcosa è errato perché il codice sopra fa un "get_toplevel()" quindi un immediato "is_toplevel()" (molto probabilmente, get_toplevel() dovrebbe essere chiamato qualcos'altro).
2
Anche se gtk_widget_get_toplevel dovrebbe funzionare, puoi anche provare il codice qui sotto. Dovrebbe ottenere la finestra genitore gtk per il widget dato e stamparne il titolo.
GdkWindow *gtk_window = gtk_widget_get_parent_window(widget);
GtkWindow *parent = NULL;
gdk_window_get_user_data(gtk_window, (gpointer *)&parent);
g_print("%s\n", gtk_window_get_title(parent));
speranza che questo aiuti, riguarda
5
In pygtk, è possibile ottenere il livello superiore come toplevel = mywidget.get_toplevel()
poi alimentano toplevel
direttamente al gtk.MessageDialog()
Problemi correlati
- 1. Colore di sfondo per GTK_WINDOW_TOPLEVEL Gtk Widget
- 2. Come visualizzare un widget all'interno di una finestra principale
- 3. Perché non è possibile ottenere l'handle della finestra principale per un processo avviato?
- 4. C'è un buon modo per copiare un widget Gtk?
- 5. Ottieni la finestra principale dell'applicazione
- 6. scoprire quale widget di GTK ha la selezione corrente
- 7. Ottenere l'handle di finestra X11 da GtkWidget
- 8. Ottenere la finestra principale di un'app tramite un'istanza NSRunningApplication
- 9. Gtk-Critical **: gtk_widget_show assertion GTK_IS_WIDGET (WIDGET)
- 10. Widget grafico per GTK o Qt
- 11. Miglior widget Qt da utilizzare per la finestra delle proprietà?
- 12. È possibile creare nuove istanze di widget da un widget di Dashboard?
- 13. ShowDialog() dietro la finestra principale
- 14. In GTK, come si ottiene la dimensione effettiva di un widget sullo schermo?
- 15. Come ottenere ogni widget figlio di una finestra Tkinter
- 16. Come disegnare qualsiasi widget GTK sulla superficie del Cairo
- 17. Modifica URL finestra principale da iFrame
- 18. WPF Ottieni finestra principale
- 19. Come ottenere la finestra principale (delegato app) da un'altra classe (sottoclasse di NSViewController)?
- 20. È possibile aggiornare un timer in un widget Today?
- 21. È possibile ottenere un IntPtr da un array int []?
- 22. Nginx: è possibile ottenere la risposta riattivata da auth_request
- 23. Come nascondere la finestra popup Gtk quando l'utente fa clic all'esterno della finestra
- 24. Totalmente stufo con get Gtk widget altezza e larghezza
- 25. Android: è possibile riposizionare la finestra popup di riconoscimento vocale?
- 26. Documento finestra principale di riferimento
- 27. Ottenere istanza di controllo finestra principale in applicazione delegato
- 28. Motore a tema GTK: da dove iniziare?
- 29. È possibile ottenere "tutto" da javax.naming.InitialContext?
- 30. È possibile ottenere un valore di ritorno da multiprocessing.Process?
Questo richiede una deviazione inutile attraverso di basso livello GDK gunge - meglio stare con il livello GTK. Qui è necessario realizzare il widget e probabilmente avrà problemi in GTK 3. –
"sebbene il metodo consigliato dovrebbe funzionare, si potrebbe anche provare questa alternativa inutilmente complessa senza alcun motivo visibile" ... o ce n'è uno .. .? –