QPushbutton con progressbar o QProgressbar con evento on_click



  • Buongiorno a tutti.
    In una mia applicazione mi occorre una delle seguenti opzioni:
    a) un pulsante che possa colorarsi come una progressbar;
    b) Una QProgressbar che possa accettare il click del mouse.

    Qualcuno ha una soluzione da propormi prima che inizi a cercare di inventare l'acqua calda?

    Grazie a tutti
    Valerio.



  • Propongo una soluzione semplice.
    Posso settare lo stile nel seguente modo:

    ui->pushButton_2->setStyleSheet("background: QLinearGradient(x1: 0, y1: 1, x2: 1, y2: 1, stop: 0.0 #0f0, stop: 0.05 #fff, stop: 1.0 #fff);");
    

    Cambiando il valore intermedio (stop: 0.05 #fff) cambiando il valore decimale da 0 a 100 come per una progressbar.



  • a) reimplementa paintEvent di QPushButton, riempi una QStyleOptionProgressBar e usa disegna il controllo
    b) reiplementa mouseReleaseEvent e emetti un signal



  • Perfetto.
    Ora dovrò capire come fare ma sapendo cosa cercare sarà più facile :D
    Grazie... ;)



  • a) praticamente devi copiare all'interno del tuo paintevent il paintevent di QProgressBar. Il problema e' che quello che fa initStyleOption tu lo devi fare a mano
    b) molto piu' facile da fare ma probabilmente devi comunque smanettare un po' con paintevent per cambiare l'aspetto della progressbar quando ci clicchi su



  • Perfetto.
    Per ora penso che terrò buona l'idea di cambiare solo il gradiente del QPushButton poiché è più veloce e mi permette di andare avanti con il programma. Purtroppo ho i tempi un po' stretti e devo dare qualcosa di visibile. La tua soluzione la applicherò in una eventuale seconda release.

    Grazie mille per l'aiuto.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.