Problema: Voglio implementare un widget di modifica del testo per il testo con tag aggiuntivi. Mi piacerebbe che alcuni tag siano invisibili in alcuni casi, in modo da non distrarre l'utente.Nascondere il testo con QSyntaxHighlighter
Ambiente: sto usando PyQt
e preferiscono usare QPlainTextWidget
e QSyntaxHighlighter
.
Metodo: Con QSyntaxHighlighter
Posso impostare QTextCharFormat
per le stringhe che corrispondono al mio requisito. QTextCharFormat
mi offre tutte le proprietà dei caratteri come dimensione, colori, ecc. ma: Non ho trovato un'opzione per nascondere il testo o ridurne le dimensioni a zero.
Non voglio rimuovere o sostituire i tag, in quanto ciò introdurrà molto più codice (la copia dovrebbe contenere tag e senza I non è possibile utilizzare QSyntaxHighlighter
per formattare il testo rimanente in base ai tag).
Aggiornamento: Finora ho trovato un brutto trucco. Impostando QTextFormat :: FontLetterSpacing su un valore piccolo, il testo consumerà sempre meno spazio. In combinazione con un colore trasparente, il testo è qualcosa di invisibile.
Problema: Nel mio test questo ha funzionato solo per le spaziature delle lettere fino allo 0,016%. Sotto la spaziatura viene resettato al 100%.
Beh, solo testo è il testo normale. Prova ad usare il widget non semplice. –
Non ho trovato le opzioni corrispondenti in 'QTextEdit'. AFAIK la differenza è limitata al comportamento di scorrimento, tabelle, cornici e cose come le immagini. Le funzioni che potrebbero consentire di nascondere il testo sono le stesse di "QPlainTextEdit'. Altro poi che ci sono mo classi più avanzate all'interno di Qt. QScintilla significherebbe usare qualcosa di completamente diverso. – m2j