Skocz do zawartości

Glade +combo Boź


Jackass

Rekomendowane odpowiedzi

Heja.

 

Na początek powiem tyle, polecam lekturę http://developer.gnome.org/doc :)

 

ok a teraz do problemu.

 

Glade tak? Więc tam porblem polega na tym że pewnie masz jakiś opis ale on dotyczy starego ComboBoxa a nie GtkComboBoxEntry, ale spoko z tym nowym jest łatwiej :)

 

Glade tworzy taki kod w pliku interface.c:

 

comboboxentry1 = gtk_combo_box_entry_new_text ();

gtk_widget_show (comboboxentry1);

gtk_fixed_put (GTK_FIXED (fixed1), comboboxentry1, 64, 104);

gtk_widget_set_size_request (comboboxentry1, 183, 26);

gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("Matis"));

gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("Tata"));

gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("Sula"));

gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("Bombel"));

 

g_signal_connect ((gpointer) comboboxentry1, "changed",

G_CALLBACK (on_comboboxentry1_changed),

NULL);

 

ostatnia linijka to jak widać połączenie obiektu z funkcją onChange.

Dalej w pliku callbacks.c mamy tą właśnie funkcję: (jakby jej nie było to w callbacks.h masz jej prototyp, skopiuj, wywal średnik na końcu i walnij klamry)

 

void

on_comboboxentry1_changed (GtkComboBox *combobox,

gpointer user_data)

{

gchar* res;

res = gtk_combo_box_get_active_text(combobox);

printf("\nBox = %s\n", res);

}

 

a w tejże funkcji odzyskuje daną wartość, którą zaznaczył użytkownik.

 

Jeśli chcesz odzyskać ją dopiero po np. naciśnięciu guzika czy innego zdarzenia, musisz obiekt comboboxentry1 wysłać jako user_data do funkcji obsługującej zdarzenie wciśnięcia guzika.

 

g_signal_connect ((gpointer) button1, "clicked",

G_CALLBACK (on_button1_clicked),

comboboxentry1);

 

a potem w funkcji:

 

void on_button1_clicked(GtkButton *button, gpointer user_data)

{

gchar* res2;

res2 = gtk_combo_box_get_active_text(user_data);

printf("\nBox = %s\n", res2);

}

 

Pozdrawiam :)

 

mam nadzieję że się prztda.

Odnośnik do komentarza
Udostępnij na innych stronach

O to może i ja się podepne ;)

W glade przy próbie kompilacji czegokolwiek dostaje coś takiego

Wystąpił błąd przy uruchamianiu programu glade-- w celu wygenerowania kodu źródłowego w C++.
Upewnij się, że glade-- został zainstalowany i umieszczony na ścieżce wykonania.
Następnie spróbuj wykonać polecenie "glade-- <plik_projektu.glade>" w wierszu poleceń.

W konsoli jak chce ręcznie, to pisze, że command not found.

 

W katalogu, gdzie się projekt zapisał jest jakiś plik autogen.sh. Właściwie, to nie wiem, po co on jest, ale po odpaleniu wywala się

checking for pkg-config... /usr/bin/pkg-config
checking for libgnomeui-2.0... Package libgnomeui-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libgnomeui-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libgnomeui-2.0' found

configure: error: Library requirements (libgnomeui-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.

Pakiet oczywiscie mam.

 

Dobrze, że ktoś poruszył w końcu temat glade'a ;)

Jeszcze tak przy okazji, czy jest ktoś w posiadaniu opisów nt. tych wszystkich plików, jakie tworzą się w katalogu glade'a. Przy wyborze w anjucie projektu gtk+ również się tam coś kompiluje i też powstaje parenaście plików. I teraz jak np. można je sobie przystosować dla siebie, np. aby można było przy ./configure wpisać coś takiego --with-mysql=/ścieżka/do/niego/ (przykład to tylko) i żeby to chodziło ( a może już chodzi, tylko ja nie wiem ;))

Odnośnik do komentarza
Udostępnij na innych stronach

No to witam znowu :)

 

Nie bardzo kumam Iszk gdzie i kiedy ci ten błąd wyskakuje ale u mnie to wygląda tak:

robie sobie projekt w glade, zapisuje w katalogu i robie Plik->Zbuduj. Następnie zamykam Glade i wchodzę do katalogu z projektem powiedzmy /home/projekt1 wydaje polecenie ./configure i make. Po tych operacjach mam w podkatalogu src plik wykonywalny i wszystko co trza.

 

Jeśli twój problem występuje przy ./configure to (_sprubuj_ → spróbuj) ORT je pominąć i dac od razu make. Jeśli to nie pomoże to może zmień sobie galade na glade2, albo skołuj paczkę libgnomeui-2.0 z innego źródła, a może właśnie! A na pewno masz tą paczkę w wersji dev?

 

A co do tych skryptów to musisz się zainteresować programami autoconf i automake. W necie pełno tutoriali:

np. http://www.amath.washington.edu/~lf/tutori...manual_toc.html

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo kumam Iszk gdzie i kiedy ci ten błąd wyskakuje ale u mnie to wygląda tak:

robie sobie projekt w glade, zapisuje w katalogu i robie Plik->Zbuduj.

Właśnie wtedy, gdy klikne na zbuduj.

PS. To jest niby glade2, bo innego w repach nie było, a mi się szukać nie chciało (jak dobrze pamiętam);)

 

Kurna wszystko mi się dziś na Fedorze sypie. Przedtem glade, a teraz gtkmm się pluje na całeogo :/

Ale walić to, w weekend się pobawie na Debianie. Może tam pójdzie mi lepiej ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Coś tam jeszcze poinstalowałem jakoś przez apt i teraz mam tak, ze gdy klikne na zbuduj w glade (w c), to jest wszystko dobrze (znaczy nic się nie pluje), a jak w c++ to dalej się pluje :) Potem ten ./autogen.sh, ./configure oraz make no i chodzi :)

Czyli niby good. To jeszcze tylko zostało przywołanie do porządku gtkmm ;)

PS.Dzięki za linki.

 

P.S

Czemu avatar zmieniłeś? tamten był lepszy smile.gif

Bo mi się już znudził ;) A czy lepszy, to kwestia gustu; zresztą zawsze moge do niego wrócić :P A ten by lepiej wyglądał, jakby avatar był troche większy -> w normalnych rozmiarach jest IMO dużo lepszy ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Ja bym się kłucił co do twojego rozwiązania perbeatus. Chodzi o funkcję:

 

gtk_combo_box_get_active_text (foo);

 

to cacko jest dostepne dopiero w wersji gtk+ 2.6.x, a pamiętajmy, ze większość dystrybucji ciągle bazuje na gtk 2.4.x. Póki co nie polecam tego rozwiązania. Jak coś wymyślę to dam znać :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tomcio

 

Ja mam Debiana testing i mam 2.6, Fedora ma 2.6, Ubuntu ma jeszcze nowszą, inne mnie nie interesują :P

Jakie distro mają 2.4? Debian Woody :)

 

Ale jak wymyślisz to Cool :)

 

Podpowiem że w starszych wersjach gtk trzeba korzystać z ComboBox a nie ComboBoxEntry. W Glade to jest w zakładce przestarzałe :) nie bez kozery. Jeśli ktoś używa DevHelp tam wszystko jest ładnie opisane apropos ComboBox, ale ComboBoxEntry już nie ma w DevHelp.

 

Pozdrawiam.

 

P.S

Tomcio widzę się rozwijasz jako programista. B) Szacunek. Oby tak dalej.

 

EJJ! TU JEST SPRAWDZANIE PISOWNI???

SUPER :)

(_kożystać_ → korzystać) ORT mrufka hciała z kładki nad żeczką

Odnośnik do komentarza
Udostępnij na innych stronach

Ja mam Debiana testing i mam 2.6, Fedora ma 2.6, Ubuntu ma jeszcze nowszą, inne mnie nie interesują :P

Jakie distro mają 2.4? Debian Woody :)

 

O w buźkę! :o Osobiście używam Gentoo, i mam gtk 2.6 i byłem święcie przekonany, ze Fedora 3 ma gtkm 2.4.x :blink: wiem, że Aurox 10.1 ma gtk 2.4.x, ale kto tego systemu używa... ;)

 

Alle jaj jestem uparty i nie poddam sie bez walki :lammer: :P , mianowicie, interesująca wydaje sie ta funkcja:

 

gboolean    gtk_combo_box_get_active_iter   (GtkComboBox *combo_box,
                                            GtkTreeIter *iter);

 

i jest juz od czasów 2.4.x

 

Potem można z widgetu GtkTreeView pokąbinować, trzeba coś z tego poukładać, jak ktoś ma ochotę to proszę bardzo, to potrzebne rzeczy:

 

GtkTreeModel* gtk_combo_box_get_model       (GtkComboBox *combo_box);

gboolean    gtk_combo_box_get_active_iter   (GtkComboBox *combo_box,
                                            GtkTreeIter *iter);

void        gtk_tree_model_get              (GtkTreeModel *tree_model,
                                            GtkTreeIter *iter,
                                            ...);

 

Powinno sie udać, ale nie jestem pewien ;)

 

Tomcio widzę się rozwijasz jako programista.  B) Szacunek. Oby tak dalej.

 

:o

He he, a ja się uważam za totalnego lamera :D

 

btw perbeatus, będziesz miał ochotę w rzyszłości napisać pewna aplikację w oparciu o GNOME/GTK+? Bo chodzi mi pewien pomysł po głowie, ale musz·e sie jeszcze troche o alsie douczyć :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...