Tengo un widget personalizado y necesita iniciar un MessageDialog y para poder colocar el cuadro de diálogo de ese mensaje en la parte superior de la ventana en la que está mi widget, entonces necesito acceder al parent gtk.window. ¿Hay alguna manera de obtener la ventana padre GTK? Gracias¿Puedes obtener la ventana padre GTK desde un widget?
10
A
Respuesta
8
Los documentos sugieren GTK:
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
if (gtk_widget_is_toplevel (toplevel))
{
/* Perform action on toplevel. */
}
get_toplevel devolverá el widget más alta que estás dentro, si es o no es una ventana, por lo que el cheque is_toplevel. Sí, algo se llama mal, ya que el código anterior tiene un "get_toplevel()" y luego un "is_toplevel()" inmediato (lo más probable es que get_toplevel() se llame algo diferente).
2
Aunque gtk_widget_get_toplevel debería funcionar, también puedes intentar con el siguiente código. Debería obtener la ventana parent gtk para el widget dado e imprimir su título.
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));
esperanza que esta ayuda, que se refiere a
5
En pygtk, se puede obtener el nivel superior como toplevel = mywidget.get_toplevel()
luego alimentar toplevel
directamente a gtk.MessageDialog()
Cuestiones relacionadas
- 1. ¿Puedes cambiar el padre de un widget en python tkinter?
- 2. ¿Cómo se encuentra la posición absoluta de un widget GTK en una ventana?
- 3. Gtk Terminal Widget
- 4. ¿Hay una buena manera de copiar un widget Gtk?
- 5. Color de fondo para GTK_WINDOW_TOPLEVEL Gtk Widget
- 6. Cerrar programáticamente ventana gtk
- 7. PyQt: ¿cómo obtener el nivel superior padre del widget dado?
- 8. Widget de gráficos para GTK o Qt
- 9. ¿Cómo puedo obtener la altura de una ventana padre desde iFrame usando jQuery?
- 10. averiguar qué widget gtk tiene la selección actual
- 11. Gtk-Critical **: gtk_widget_show assertion GTK_IS_WIDGET (WIDGET)
- 12. Cómo obtener la vista padre desde la vista parcial
- 13. Obtener System.Windows.Forms.IWin32Window desde la ventana de WPF
- 14. Actualizando la pantalla desde un widget?
- 15. Totalmente harto de obtener la altura y el ancho del widget Gtk
- 16. En GTK, ¿cómo obtengo el tamaño real de un widget en la pantalla?
- 17. tamaño mínimo de gtk
- 18. Actualizar ventana padre cuando la ventana emergente está cerrada
- 19. Obtener un archivo de la web: en GTK usando C
- 20. ¿Cómo puedo actualizar la ventana padre de un iframe?
- 21. Actualice la ventana principal desde la ventana secundaria en javascript
- 22. Cómo ocultar ventana emergente de Gtk cuando el usuario hace clic fuera de la ventana
- 23. Cómo dibujar cualquier widget GTK sobre la superficie de El Cairo
- 24. ¿Cómo obtener la ventana Gdk de xid?
- 25. Javascript pasando datos desde la ventana de la ventana hijo a la ventana principal, IE error?
- 26. obtener el atributo de un nodo padre
- 27. ¿Cómo obtener ancho y alto desde la ventana CreateWindowEx()? C++
- 28. ¿Cómo obtengo la ventana gdk para una ventana gtk en C?
- 29. ¿Puedes vincular un archivo CSS desde un correo electrónico?
- 30. Cómo obtener la ubicación El directorio padre
Esto toma un desvío innecesario a través de bajo nivel mugre GDK - mejor quedarse con la capa GTK. Aquí requiere que el widget se realice, y probablemente tenga problemas en GTK 3. –
"aunque el método recomendado debería funcionar, también puede probar esta alternativa innecesariamente compleja sin motivo aparente" ... o hay una ... .? –