ďťż
 
 
   Komilacja programu - gtk+
 
 

Tematy

 
    
 

 

 

 

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis