Comunidad Gambas-es

Versión completa: ComboSeek: Un combobox que busca en la lista según se escribe
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2 3
Ayer me enteré que, desde no sé qué versión de gambas, que antes no era así, el control combobox ha sido reescrito en gambas3. A partir de ahí ha sido fácil modificar éste control para hacer lo que no conseguí hacer hace unos días y que os presenté aquí https://gambas-es.org/showthread.php?tid=914 . Ahora sí funciona tal como buscaba, es decir, al teclear en el textbox, la lista del combo se despliega y se va buscando en ella el texto tecleado, pasándolo al combobox al pulsar enter.

La pista de donde mirar me la dio el gran Gianluigi, del foro Italiano y desde aquí le doy las gracias.

Como siempre está muy poco probado, que la impaciencia por traerlo aquí me puede, así que si lo probáis y le encontráis bugs os estaré eternamente agradecido.

Espero que os guste y/o os sea útil.

Saludos
Se me olvidaba comentar que la búsqueda es independiente de si la lista está ordenada o no (propiedad sorted del control). Esto no sé si es lo más conveniente, pero me ha parecido que sí.

También lo he subido a la Granja y lo podéis descargar de ahí.

Saludos
(17-06-2022, 13:37)Shordi escribió: [ -> ]Como siempre está muy poco probado, que la impaciencia por traerlo aquí me puede, así que si lo probáis y le encontráis bugs os estaré eternamente agradecido.

Hola Shordi, un control como este es siempre bienvenido. Te paso algunos errores que encontré y algunos pedidos de mejoras.
  • El ejemplo venia con el componente gb.gui.qt así el video 1 esta hecho con ese. El error aqui es que la lista aparece mal posicionada respecto al control.
  • Luego cambie al componente gb.gui (ya que uso un escritorio gtk ) y ahi el video 2. El error aqui es similar al anterior con el agregado de no ver lo que se escribe.
  • Luego si el texto del control cambia, pero debido a que se borran caracteres, la lista no se activa, solo se activa cuando se agrega una letra.
[Imagen: CnlrCxv.gif][Imagen: RCQ0APW.gif]
¿Qué escritorio usas?
(18-06-2022, 18:19)Shordi escribió: [ -> ]¿Qué escritorio usas?

XFCE
Haré pruebas, pero ya puedo confirmar que es raro todo esto. Si copias el código fuente del combobox y te limitas a cambiarle el nombre da un par de errores pequeños. Si los "arreglas", el aspecto de lo que se dibuja no es el mismo con GTK que con QT, cosa esperada, pero con GTK no se ve lo que se teclea. Si lo haces con QT sí se ve, pero no es el mismo aspecto tampoco entre el combobox que hay en tu aplicación  y un combobox estándar (¿¿¿no era el mismo código fuente???).

Respecto a la posición de la lista, en mi máquina es lo mismo con qt que con gtk. Instalaré una virtual con xface y ya te cuento.

O sea, un follón.


Saludos.
Me dice Gianluigi del foro gambas-it.org que con la versión testing de Gambas3 el control funciona bien con GTK. Es un alivio, oiga.

Me falta probar lo del XFCE, pero con mi conexión a internet eso de descargar e instalar máquinas virtuales como que no va demasiado bien...

Ya os contaré.

Saludos.
(19-06-2022, 20:16)Shordi escribió: [ -> ]Me dice Gianluigi del foro gambas-it.org que con la versión testing de Gambas3 el control funciona bien con GTK. Es un alivio, oiga.

ok, si le eche un vistazo al hilo, muy bien, estas en todos lo frentes !! Big Grin
 
(19-06-2022, 20:16)Shordi escribió: [ -> ]Me falta probar lo del XFCE, pero con mi conexión a internet eso de descargar e instalar máquinas virtuales como que no va demasiado bien...

XFCE usa las librerías GTK como cualquier otro escritorio como Cinnamon, Gnome o LXDE así que en principio si funciona en alguno de estos escritorios debería funcionar par XFCE también. El problema puede ser las versiones de GTK que use el escritorio que pueden ser v2, v3 o v4
¿Tu que escritorio usas? 
Luego mirando el código de tu control veo que lo construyes a partir de usercontro así que ahí va una pregunta de un profano que no hizo nunca un control personalizado: ¿Es posible crear un control heredando directamente el combobox?
Cita:Luego mirando el código de tu control veo que lo construyes a partir de usercontro así que ahí va una pregunta de un profano que no hizo nunca un control personalizado: ¿Es posible crear un control heredando directamente el combobox?
Por supuesto, pero no tendrás acceso a aquello que la clase padre esconde. Podrás añadirle/reescribir métodos y propiedades, pero nada más. Heredando del combobox original (sí, lo intenté) no fui capaz de modificar los comportamientos de cuando esconder/mostrar la lista y demás. El código fuente que hay en github es el que he utilizado, modificando tan sólo los comportamientos de teclado y la visibilidad interna de algunos objetos.

Aún así, la cosa no deja de tener "detalles ocultos" que no me gustan mucho... pero bueno. Cumple mis espectativas.

Lo he probado con xubuntu, lubuntu, y debian 11 con casi todos los escritorios que lleva y me ha funcionado casi bien en todos ellos, quiero decir que la lista se despliega bien, el teclado responde bien y el valor elegido se traspasa al control. Lo que falla es la visualización, que en algunos casos no muestra el botón de desplegar, aunque funciona, y en otros no muestra nada de nada, ni el textbox ni el botón... aunque funciona perfectamente.

Es la primera vez que intento hacer algo que funcione para todas las librerías y escritorios y he de reconocer que el tema me supera. Supongo que esto es el ADN de Linux. Versiones, librerías gráficas, escritorios... con Franco windows esto no pasaba, oiga. Se me agranda más la imagen de Benoît manteniendo gambas operativo en todos los submundos.

QT de mis amores, programaré para tí, no te pongas celosa que esa desharrapada de GTK no tiene nada que hacer conmigo.

Actualizaciones
Le he cambiado el nombre a ComboSeek que es más corto
Le he retocado algo el código para darle comportamiento a más teclas (up,down, pgDown, pgUp).
También he cambiado el modo de búsqueda, a sugerencia de Gianluigi, para que sólo busque coincidencias al inicio de los items, no en cualquier parte de ellos como hacía antes.
Lo tenéis actualizado en la Granja.

Lo he probado con versiones anteriores 15.3 (creo) de gambas y en algunas falla porque los componentes (gridview) tienen propiedades nuevas (ensurevisible) y no funcionan.

Si no os funciona bien o si veis bugs o sugerencias, decídmelo por favor.

Saludos
Viejo como me hago, ayer me hice la picha un lío con las versiones y subí como última (0.1.2) la que era la penúltima. Hoy he actualizado el enlace en la cabecera de este hilo y en la granja a la última de verdad: 0.1.3.

Pido disculpas si esto le ha causado problemas a alguien.

Visto el error y el desastre que arriba os cuento (versión equivocada: subida al foro, subida a la granja, subida al foro italiano, etc. ) he decidido colgarlo en el gitlab:
https://gitlab.com/shordi/ComboSeek

A partir de ahora si hay cambios sólo los pondré allí y así sabréis siempre que si los descargáis de ahí tenéis la última versión.
Por supuesto, si alguien quiere colaborar para eso se inventó el Gitlab.

Saludos
Páginas: 1 2 3