Pagina 1 di 1

[RISOLTO][C-GTK]problema aggiornamento GUI

Inviato: mercoledì 27 febbraio 2008, 22:14
da IacopoDeeNosee
ho un problema con l'aggiornamento della GUI in un programma che sto facendo utilizzando proprio le GTK,in pratica volevo fare in modo che durante un operazione la barra di progresso si muova ogni secondo finchè l'operazione non è conclusa tramite la funzione :

Codice: Seleziona tutto

gtk_progress_bar_pulse(GTK_PROGRESS_BAR(ProgressBar));
al momento il processo principale aggiorna la GUI mentre ho fatto un thread per gestire la barra di progresso,funziona tutto ma il problema è che la barra di progresso non viene aggiornata costantemente,il tempo di aggiornamento può variare da 1 secondo a 6 secondi,sembrerebbe a seconda del carico del processore ??? ora vorrei che l'aggiornamento avvenisse almeno ogni secondo in modo da avere un effetto più fluido,come posso agire?
BYE  :)

Re: [C-GTK]problema aggiornamento GUI

Inviato: mercoledì 27 febbraio 2008, 22:18
da simo_magic
che cosa usi come contatore? nel senso: la variabile che contiene la percentuale della progressbar in che modo viene incrementata?

Re: [C-GTK]problema aggiornamento GUI

Inviato: mercoledì 27 febbraio 2008, 22:28
da IacopoDeeNosee
non utilizzo nessuna variabile per incrementare la barra di progresso,semplicemente la faccio andare avanti e indietro finché l'operazione non finisce,credo che sia possibile solamente specificare di quanti step sia composta la barra usando:

Codice: Seleziona tutto

gtk_progress_bar_set_pulse_step ()
come posso rimediare?
se vuoi posso postare il codice del thread che gestisce la barra...
BYE :)

Re: [C-GTK]problema aggiornamento GUI

Inviato: giovedì 28 febbraio 2008, 21:18
da IacopoDeeNosee
per poter aggiornare la GUI ogni secondo ho usato questa funzione trovata nel tutorial delle GTK stesse  :-[

Codice: Seleziona tutto

TimerUpdateGUI = g_timeout_add (1000,UpdateGUI,NULL);
in pratica richiama una funzione(2° parametro) ogni tot di tempo(1° parametro in millisecondi),ora funziona tutto come volevo anche se in fase di compilazione mi restituisce un warning in questa chiamata  ???
Main.c:87: warning: passing argument 2 of ‘g_timeout_add’ from incompatible pointer type
comunque metto risolto visto che funziona  ;D