[GTK] GtkTextView e file speciale

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
mous16
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3940
Iscrizione: mercoledì 25 ottobre 2006, 15:51
Sesso: Maschile

[GTK] GtkTextView e file speciale

Messaggio da mous16 »

Sto cercando di imparare ad usare le gtk in c, ma con pessimi risultati.
Dopo aver aperto il file di una porta seriale, vorrei leggere in continuazione tutti i caratteri che compaiono nel buffer e visualizzarli in una finestra. Tipo terminale a scorrimento.
Ora, mi pare di aver capito che il widget giusto per fare ciò è GtkTextView (sto usando glade), solo che costui lavora sui GtkTextBuffer. Io credo di poter acquisire i caratteri come gchar: come farli arrivare sul textview?
Pagine personali: Forum Ubuntu-it - Wiki Ubuntu-it - Launchpad
Solo/mous16
Avatar utente
IacopoDeeNosee
Prode Principiante
Messaggi: 194
Iscrizione: giovedì 3 maggio 2007, 0:00
Contatti:

Re: [GTK] GtkTextView e file speciale

Messaggio da IacopoDeeNosee »

prova a seguire questo modello:

Codice: Seleziona tutto

...
gchar *StrToText;

GtkWidget *Text_gtk =  gtk_text_view_new ();

GtkTextBuffer *Buffer_text = gtk_text_view_get_buffer (GTK_TEXT_VIEW (Text_gtk));

gtk_text_buffer_set_text (Buffer_text, StrToText, -1);

...
se vuoi fare un text scrollabile:

Codice: Seleziona tutto

...
GtkObject * SetVScrBar_text = gtk_adjustment_new(0,0,100,5,10,15);
GtkObject *SetHScrBar_text = gtk_adjustment_new(0,0,100,5,10,15);

GtkWidget *ScrBar_text =gtk_scrolled_window_new(GTK_ADJUSTMENT(SetHScrBar_text),GTK_ADJUSTMENT(SetVScrBar_text));
   		
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrBar_text),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);

gchar *StrToText;

GtkWidget *Text_gtk =  gtk_text_view_new ();

GtkTextBuffer *Buffer_text = gtk_text_view_get_buffer (GTK_TEXT_VIEW (Text_gtk));

gtk_text_buffer_set_text (Buffer_text, StrToText, -1);

gtk_container_add(GTK_CONTAINER(ScrBar_text), Text_gtk);
...
se ti servono altri esempi guarda qui:
http://zetcode.com/tutorials/gtktutorial/gtktextview/
personalmente la maggior parte dei problemi li ho risolti spulciando le reference delle gtk,così da avere un idea degli strumenti messi a disposizione:
http://library.gnome.org/devel/gtk/stable/
spero di esserti stato d'aiuto.
BYE :)
Skype -> IacopoDeeNosee
Avatar utente
mous16
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3940
Iscrizione: mercoledì 25 ottobre 2006, 15:51
Sesso: Maschile

Re: [GTK] GtkTextView e file speciale

Messaggio da mous16 »

non ho ancora provato, ma comunque sei stato di aiutissimo!
Le references ieri ho passato 3 ore a leggerle, ma tra l'inglese che non è la mia lingua madre, e il fatto che paretivo proprio da 0, non ci avevo capito molto!
Pagine personali: Forum Ubuntu-it - Wiki Ubuntu-it - Launchpad
Solo/mous16
Avatar utente
mous16
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3940
Iscrizione: mercoledì 25 ottobre 2006, 15:51
Sesso: Maschile

Re: [GTK] GtkTextView e file speciale

Messaggio da mous16 »

No, ancora non ci sono... nel mentre gli ho costruito tutto il resto del programma intorno, ma da questo punto ancora non mi sono mosso...

Ad un certo punto devo far entrare un figlio in un while infinito,, dove deve prendere un carattere dalla periferica con

Codice: Seleziona tutto

		pid=fork();
		if(pid==0)
		{
			buffer=gtk_text_view_get_buffer(textview1);
			while(1)
			{
				read(fd, &c, 1);
				gtk_text_buffer_insert_at_cursor (buffer, g_locale_to_utf8(&c, 1, NULL, NULL, NULL) , 1);
				printf("%c", c);
			}
			exit(0);
		}
Ma sul terminale me lo stampa, mentre sul buffer no...
Pagine personali: Forum Ubuntu-it - Wiki Ubuntu-it - Launchpad
Solo/mous16
Avatar utente
kelev
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1766
Iscrizione: giovedì 4 settembre 2008, 0:27

Re: [GTK] GtkTextView e file speciale

Messaggio da kelev »

Rognose ste GTK :D
"E alla fine sei da solo, dove vai, con chi brindi?"
Avatar utente
IacopoDeeNosee
Prode Principiante
Messaggi: 194
Iscrizione: giovedì 3 maggio 2007, 0:00
Contatti:

Re: [GTK] GtkTextView e file speciale

Messaggio da IacopoDeeNosee »

il processo padre gestisce l'aggiornamento della GUI perciò dovresti passare a lui il GtkTextView con il buffer aggiornato,prova a vedere qui quale soluzione adottare:
http://tldp.org/LDP/lpg/node7.html
oppure la mitica gapil  ;D
http://www.lilik.it/~mirko/gapil/gapilc ... 2-23300012
forse la soluzione più semplice è usare la memoria condivisa,condividere GtkTextView fra i due processi  ???
BYE :)
Ultima modifica di IacopoDeeNosee il sabato 11 ottobre 2008, 21:17, modificato 1 volta in totale.
Skype -> IacopoDeeNosee
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti