Gambas-it

Gambas3 => Programmazione => Topic aperto da: koko - 02 Febbraio 2016, 14:03:27

Titolo: Evidenziamento di stringhe in un testo.
Inserito da: koko - 02 Febbraio 2016, 14:03:27
Salve a tutti,
quello che devo ottenere è a prima vista alquanto banale; ossia un testo in un widget in cui siano evidenziati con un colore diverso tutte le parole che contengano uno specifico termine ricercato.

Con le qt4 ed il componente qt4.ext ho utilizzato il componente TextEdit che supporta richtext.

In qt5 questo componente (come anche il componente "editor" è assente; ci sarebbe Texteditor, ma da quello che si capisce dalla risicata documentazione, l'highlight non è pienamente programmabile; supportando solo delle sintassi specifiche.

Qualcuno ha idea di come realizzare ciò con gambas3+qt5?

Grazie in anticipo!
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 02 Febbraio 2016, 15:30:26
Ciao koko,
per quanto riguarda TextEdit con qt5 puoi leggere questo (http://gambas.8142.n7.nabble.com/TextEdit-on-Qt5-td55280.html).
Purtroppo io non posso esserti di aiuto con qt5 in quanto uso ancora Ubuntu 14.04.
Non so se le tue necessità potrebbero essere altresì soddisfatte da una DrawingArea che con Paint si può scrivere in Rich Test...
Mi viene in mente anche gb.report2 ma non lo conosco, credo supporti i colori di sfondo.
 :ciao:
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 02 Febbraio 2016, 15:41:05
In realtà potrei usare una textlabel che ancora supporta richtext ed incorporarla in una scrollview.
Funziona alla stregua del componente textedit... non fosse per il fatto che il testo non è selezionabile (nè editabile, ma non mi importa)

Grazie per il link, gli do uno sguardo.
-edit-
Fatto, sembra che sia inutile perdere tempo, visto che sta per essere implementato upstream :D
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: vuott - 02 Febbraio 2016, 15:44:18
per quanto riguarda TextEdit con qt5 puoi leggere questo (http://gambas.8142.n7.nabble.com/TextEdit-on-Qt5-td55280.html).


Nella discussione, riportata da Gianluigi, Minisini dice che:
      TextEdit has been included in a new 'gb.qt5.ext'
per poter utilizzare l'oggetto TextEdit con QT5, è necessario attivare il componente gb.qt5.ext
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 02 Febbraio 2016, 15:45:15
Aspetto la stabile, grazie ancora.
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 02 Febbraio 2016, 15:46:02
Ma che utilizzo ne devi fare? Guarda un po qui (http://www.gambas-it.org/smf/index.php?topic=4550.msg37299#msg37299)
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 02 Febbraio 2016, 15:52:06
Ho una finestra con dei log, scrivo un testo in una casella di ricerca e voglio che ogni occorrenza di quel testo sia evidenziata con un colore nella finestra dei log.
Il testo (evidenziato o meno) deve poi essere selezionabile e copiabile nella clipboard.

La soluzione della Listview non funziona, purtroppo....
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 02 Febbraio 2016, 16:49:48
La soluzione della Listview non funziona, purtroppo....

Perché dici che non funziona? Non capisco, non puoi copiare quello che evidenzi nella lista?
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 03 Febbraio 2016, 16:33:56
Scusa, sono stato poco chiaro.
"Non funziona" nel mio caso, nel senso che non fa quello che mi serve; per esempio rende impossibile selezionare testo su più linee: per esempio, questo sarebbe impossibile:

prima linea testo da
selezionare
seconda linea
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 03 Febbraio 2016, 17:24:53
Scusa, sono stato poco chiaro.
"Non funziona" nel mio caso, nel senso che non fa quello che mi serve; per esempio rende impossibile selezionare testo su più linee: per esempio, questo sarebbe impossibile:

prima linea testo da
selezionare
seconda linea

Lo sai che non riesco proprio a comprendere la logica del tuo programma?
Fammi capire tu colori in una EditText una o più stringhe solo nella parte che dovrebbe essere selezionata dall'utente?
Ma se sai già quale è la parte che l'utente deve selezionare cosa gliela fai selezionare a fare?
Copiala tu nella clipboard.  :rolleyes:
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 04 Febbraio 2016, 12:13:33
http://wpage.unina.it/aorefice/sharevari/out.ogg-1.ogv
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 04 Febbraio 2016, 22:33:06
http://wpage.unina.it/aorefice/sharevari/out.ogg-1.ogv

vedi che avevo ragione, con listview si può riprodurre esattamente quello che fa il filmato.
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 10 Febbraio 2016, 15:33:10
Scusa il ritardo della risposta.
A parte quello che faccio nel filmato, ossia selezionare righe intere, serve anche selezionare parzialmente le linee, così come è possibile fare con un editor di testo qualsiasi.

Es:
prima linea testo da
selezionare
seconda linea
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 10 Febbraio 2016, 15:39:12
Scusa il ritardo della risposta.
A parte quello che faccio nel filmato, ossia selezionare righe intere, serve anche selezionare parzialmente le linee, così come è possibile fare con un editor di testo qualsiasi.

Es:
prima linea testo da
selezionare
seconda linea

Si, lo avevo capito  :D volevo solo scherzare un po, come lo hai fatto è molto professionale e basta aspettare un poco o lo riotterrai uguale.  :ok:
 :ciao:
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 12 Febbraio 2016, 18:32:41
Ok, non lo avevo capito :sleepy:
Quello è una piccola parte di un altro progetto che vorrei passare a qt5, aspetterò...
https://github.com/kokoko3k/xt7-player-mpv
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: vuott - 12 Febbraio 2016, 21:58:19
Quello è una piccola parte di un altro progetto che vorrei passare a qt5
https://github.com/kokoko3k/xt7-player-mpv

koko... ! Mi hai lasciato senza fiato !   :o
I miei migliori complimenti: è semplicemente quasi un trattato sul linguaggio Gambas.
Suggerisco a tutti di scaricarlo e osservarne lo spessore... da ogni punto di vista.

Spero voglia tu frequentare sempre più spesso questo forum.

    (http://www.bestemoticon.com/smiley/bonjour/hello04.jpg)
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: Gianluigi - 12 Febbraio 2016, 23:02:27
Quello è una piccola parte di un altro progetto che vorrei passare a qt5
https://github.com/kokoko3k/xt7-player-mpv

koko... ! Mi hai lasciato senza fiato !   :o
I miei migliori complimenti: è semplicemente quasi un trattato sul linguaggio Gambas.
Suggerisco a tutti di scaricarlo e osservarne lo spessore... da ogni punto di vista.

Spero voglia tu frequentare sempre più spesso questo forum.

    (http://www.bestemoticon.com/smiley/bonjour/hello04.jpg)

Ciao Koko,
complimenti vivissimi.
Mi accodo volentieri a quanto detto da Vuott, lo sottoscrivo con molta, molta ammirazione.
+1  :ok:
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: koko - 16 Febbraio 2016, 15:28:48
Grazie per i complimenti, xt7 è un progetto che porto avanti ormai da 7 anni circa; ed ho iniziato a scriverlo parallelamente all'imparare gambas stesso; ed infatti il codice nacque sporco; poi ripulito negli anni, ma ancora si porta dietro qualche schifezza...

Chiesi aiuto per la traduzione anni addietro proprio su questo forum, ma ci tengo a precisare che chiunque volesse contribuire è ben accetto; è su github anche per quello ;)
...in particolare una modifica assai tosta per le mie conoscenze, sarà quella interagire con mpv tramite la libreria condivisa libmpv, invece che tramite l'eseguibile; anche in ottica wayland...
Titolo: Re:Evidenziamento di stringhe in un testo.
Inserito da: vuott - 16 Febbraio 2016, 15:47:19
... interagire con mpv tramite la libreria condivisa libmpv
Posso provare a darti una mano, per la gestione delle funzioni esterne.