Allineamento risultato

Buongiorno a tutti, ho un dato in percentuale dello stato della batteria, questo dato diminuisce da 100% a 0%, il problema che ho è che diminuisce spostando il dato da sx verso dx, io vorrei sapere se si può e come farlo al contrario da dx verso sx, per capirci che se parto da 100% il simbolo % rimanga fermo non come vedete
100%
90%
5%

la parte del codice che scrive questo dato sul display è

tft.setTextColor(TFT_WHITE,  TFT_BLACK);
        tft.setTextSize(1);
        tft.setTextFont(2); 
        tft.setCursor(150, 3);
        tft.print(battPcrt);
        tft.print(" % ");    

come faccio??
Grazie infinite

Parlando in generale, direi che basta stampare il simbolo "%" senza riscriverlo ogni volta, quindi scrivere il dato sovrapponendolo a quello precedente oppure "pulendo" lo spazio di quelle 3 cifre (a seconda del tipo di display e libreria, ad es. aggiungendo spazi iniziali per scrivere sempre 3 caratteri issua se scrivi prima "100" e poi " 5).

Se oltre a dire quale display usi, se ci mostrassi l'intero sketch sarebbe meglio.

Scusate dimenticavo, sto usando un display ST7789 e la libreria TFT_espi

Prova così:

char buf[10] = {0};
sprintf(buf,"%3i %%",battPcrt");
tft.setTextPadding(tft.textWidth("000 %",2));
tft.setTextDatum(TR_DATUM); //se vuoi rimanere allineato a dx
tft.drawString(buf,150,3,2); // cambia x,y (150,3) al bisogno

Ciao, Ale.

1 Like

@ilguargua
Grazie Infinite funziona

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.