|
Komilacja programu - gtk+
axlinux - 23-02-2008 14:04
Witam
Zabieram się właśnie za programowanie w GTK+. Tylko nie mam pojęcia co muszę mieć na swoim debianie zainstalowanego. Korzystam z Gnome więc pewnie gtk+ jest. Ale jakim poleceniem mogę skompilować program. ;]
Dziękuje z odpowiedzi ;]
katnerster - 23-02-2008 16:36
Witam.
Musisz napisać w jakim języku chcesz programować. Pewnie będziesz musiał zainstalować podstawowe biblioteki GTK+ z dopiskiem -devel.
Pozdrawiam
axlinux - 23-02-2008 17:08
Oczywiście w C++. :P
katnerster - 23-02-2008 18:25
Ja niestety nie "bawiłem" się w C++. Co do kompilacji to odsyłam do Wikipedii. Pozdrawiam.
giaur - 23-02-2008 19:24
IMHO najlepiej bedzie zainstalowac jakies IDE, polecam Anjute+GLADE, gdzie utwrzysz gotowy projekt i zaprojektoujesz okienka.
A najprosciej, dlubiac calkowicie recznie zeby skompilowac i zlinkowac program piszesz cos takiego:
gcc -Wall -g program.c -o program `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
A tak w ogole to zastanow sie czy chcesz dlubac w GTK i czy nie lepiej uzyc np wxWidgets (wxGTK konkretnie) albo gtkmm (strasznie toporne ale lepsze niz GTK)
mlyczek - 23-02-2008 21:32
Ogólnie jest tak, że biblioteka do pisania w C nazywa się gtk, a jak się pisze w C++ to już gtkmm, które ma pełną obiektowość, a nie symulowaną GObject tak jak to jest w gtk dla C. Inna sprawa, że podstawowe gtk było napisane w C i dla tego języka przygotowane, jednak nazwy funkcji czasami są długie
gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog), "Nie można czytać z pliku z bazą danych!");
co spowodowane jest dodawaniem na ich początku gtk_<nazwa widgeta> a dopiero później sama funkcja. W gtkmm już tego nie ma, jest pełna obiektowość i normalnie odwołujemy się do metody danego obiektu przez ->
Co do potrzebnych paczek to do pisania w C potrzebne jest libgtk2.0-dev, powinno pociągnąć zależności, a do C++ libgtkmm-2.4-dev
giaur - 23-02-2008 22:24
A kto mi zabroni pisac w C++ uzywajac gtk? Moge sam to opakowac w klasy jak zechce.
Co do gtkmm - nie trawie tego. Przez pol (!) godziny szukalem funkcji, ktora by zamykala okno. Czyli: klikne przycisk i zamyka sie okno. Myslalem, ze bedzie to cos w stylu Close, EndModal, Destroy - pomylilem sie, nazwa jakas fikusna (cos z hide from user czy jakos tak). Takich kwiatkow jest wiecej.
Nastepna rzecz na ktorej wymieklem - chcialem umiescic widzeta na obrazku i za cholere mi to sie nie udalo. O ile samo gtk moze byc toporne, bo to tylko C w koncu, to od biblioteki obiektowej wymagam zeby cokolwiek ułatwiała.
Dobrze ze jest jeszcze wxWidgets, bo jest przynajmniej po ludzku zrobione - kazdy kto sprobuje i porowna zgodzi sie ze mna. Trzeba chyba naprawde miec duzo samozaparcie zeby pisac programy w gtkmm.
mlyczek - 23-02-2008 22:52
A kto mi zabroni pisac w C++ uzywajac gtk? Moge sam to opakowac w klasy jak zechce.
Nikt Ci nie zabroni, jasne, że możesz tak zrobić, jak ze wszystkim co jest napisane w C.
Co do gtkmm - nie trawie tego. Przez pol (!) godziny szukalem funkcji, ktora by zamykala okno. Czyli: klikne przycisk i zamyka sie okno. Myslalem, ze bedzie to cos w stylu Close, EndModal, Destroy - pomylilem sie, nazwa jakas fikusna (cos z hide from user czy jakos tak). Takich kwiatkow jest wiecej.
gtkmm jest właśnie takim opakowaniem w klasy, ale przez kogoś zrobione. O wygodzie pisania w tym nie mogę sie wypowiedzieć, bo nigdy tego nie próbowałem. Możliwe, że jest to dosyć uciążliwe. Co do zamykania okna po naciśnięciu przycisku to w C też miałem z tym problem. Najprostsze rozumowanie wygląda tak, żeby po naciśnięciu przycisku wyemitować sygnał "delete_event" dla okna i powinno być ok, ale pojawiały się różne problemy, ale to dyskusja na osobny temat.
giaur - 24-02-2008 00:55
W GTK i C najprostsza metoda na zamkniecie okna to uzycie gtk_widget_destroy na utworzonym oknie, tak robilem zamykanie dialogów.
W ogole cale to gtk i gtkmm ma jak dla mnie porąbaną składnię i logikę, QT jest juz sporo lepsze no i wspomniane wxWidgets, ktore tez jest swoistym opakowaniem Gtk (wxGTK) lub nawet nie wymaga GTK. Ale faktyczmoe temat zbyt obszerny aby tu o tym pisac.
mlyczek - 24-02-2008 18:30
W GTK i C najprostsza metoda na zamkniecie okna to uzycie gtk_widget_destroy na utworzonym oknie, tak robilem zamykanie dialogów.
Przy zamykaniu dialogów tak (tak jest nawet w manualu napisane), ale przy zamykaniu głównego okna z wnetrza jakieś funkcji, albo przy pomocy dodatkowego przycisku to juz jest nie ładna metoda.
axlinux nie napisał nam jeszcze czy udało mu się coś skompilować.
axlinux - 26-02-2008 16:54
Naturalnie że udało się "coś" skompilować.
Ale postanowiłem jednak porzucić gtk+ bo zauważyłem że jednak męczące jest programowanie pod tym wynalazkiem - może się mylę.
Wybrałem QT i myślę że to dobry wybór. Kdevelop i QT designer wspomagają trochę. :]
Dziękuje za pomoc ;]
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|