Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[GTK+] Pobieranie tekst z GtkTextView

Ostatnio zmodyfikowano 2013-02-14 19:23
Autor Wiadomość
czosnek17
Temat założony przez niniejszego użytkownika
[GTK+] Pobieranie tekst z GtkTextView
» 2013-02-13 20:53:47
Tekst z pola tekstowego jest w buforze. Aby pobrać go próbuję funkcji gtk_text_buffer_get_text().
Poza buforem trzeba jej jeszcze podać zakres pobierania:
http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html#gtk-text-buffer-get-text
Zakres można pobrać funkcją gtk_text_buffer_get_seart/end_iter() i chyba też gtk_text_buffer_get_bounds.
http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html#gtk-text-buffer-get-bounds
http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html#gtk-text-buffer-get-end-iter

No to mam taki kod, gdy próbuję go użyć w konsoli dostaję błędy:
Gtk-CRITICAL **: gtk_text_buffer_get_end_iter: assertion
 `iter != NULL' failed

C/C++
gchar * tekst;
GtkTextIter * its;
GtkTextIter * itk;
gtk_text_buffer_get_end_iter( bufor, itk );
gtk_text_buffer_get_start_iter( bufor, its );
//gtk_text_buffer_get_bounds( bufor, its, itk );

tekst = gtk_text_buffer_get_text( bufor, its, itk, FALSE );
cout << "x= " << tekst << endl;

Naprawdę nie wiem co może być źle. Zrobiłem wszystko według dokumentacji.
P-76247
Badman
» 2013-02-14 08:34:46
Akurat GtkTextIter nie jest wskaźnikiem, należy mu przydzielić pamięć. Co prawda funkcje operujące na nim odwołują się do niego przez wskaźnik, ale tylko po to żeby nie torzyć jego kopii.
Poniższy kod musi zadziałać:
C/C++
gchar * tekst;
GtkTextIter its;
GtkTextIter itk;
gtk_text_buffer_get_end_iter( bufor, & itk );
gtk_text_buffer_get_start_iter( bufor, & its );
//gtk_text_buffer_get_bounds( bufor, &its, &itk );

tekst = gtk_text_buffer_get_text( bufor, & its, & itk, FALSE );
cout << "x= " << tekst << endl;

P-76255
czosnek17
Temat założony przez niniejszego użytkownika
» 2013-02-14 19:23:17
Znowu mi pomogłeś z GTK, dzięki :)
P-76288
« 1 »
  Strona 1 z 1