Saludos al foro.
Les cuento mi problema, estoy montando una ayuda contextual basada en una idea de Shordi publicada en el foro antiguo. Básicamente cuando un usuario pulsa
F1 en un formulario, este llama a una clase que busca el componente que tiene el foco y muestra un mensaje. La premisa básica es que el par
"Form.Name-Control.Name" es único. Todo iba bien hasta que cambié de GTK3 a QT5.
La rutina para recorrer los controles dentro del
Form no solo devuelve los controles definidos, también devuelve sus controles internos. Por ejemplo, para un
ButtonBox devuelve el
ButtonBox, un
TextBox, un
DrawingArea y dos
ToolButton. Mi problema es que necesito saber el nombre del control que tiene el foco, por ejemplo en el caso del
ButtonBox en GTK3 lo hace correctamente pero en QT5 me da el foco en el
TextBox del
ButtonBox.
Como una imagen vale más que mil palabras les dejo un programa para visualizar el problema. Basta con poner el foco en cualquier control y pulsar F1. Se carga un Listbox con el nombre de cada control, su tipo y el contenedor. También dos etiquetas, una con el componente gráfico que se usa y otra con el control que tiene el foco.
Cambiando el componente gráfico en el menú "Depuración - Componente GUI" del IDE se ve la diferencia de funcionamiento.
Ando un poco despistado con esto, se agradece cualquier idea.
Un saludo, Harpo.
Se me olvida, uso Gambas 3.16.1 en un Xubuntu 20.04.2.