gtkmm
C++ сучеља за GTK и Гном
C++ сучеља за GTK и Гном
1. Место гткмм-а у свету |
|
|
Шта је ГТК? |
|
|
ГТК је скуп алата за ГУИ елементе, написан у језику Ц, који служи као основа за Гном пројекат као и за многе самосталне програме. ГТК је основа на којој је изграђен гткмм. Погледајте https://www.gtk.org. |
|
|
Зашто се зове гткмм? |
|
|
гткмм се првобитно звао гтк-- зато што се ГТК првобитно звао ГТК+ и имао је + у називу. Међутим, пошто претраживачи не индексирају лако --, пакет је углавном био познат под именом гткмм, и то је оно код чега смо остали. |
|
|
Зашто користити гткмм уместо ГТК-а? |
|
|
|
|
Зашто користити libsigc++? Зашто не користити ГТК функције сигнала? |
|
|
|
|
Зашто сами ГТК/Гном нису написани у Ц++-у? |
|
|
|
|
Зашто не користите Кут (Qt) ако толико волите Ц++? |
|
|
Програмери гткмм-а (gtkmm) обично више воле гткмм него Кут, јер гткмм ради ствари на начин који више приличи Ц++-у. Кут потиче из времена када Ц++ и стандардна библиотека нису били стандардизовани или добро подржани од стране компајлера. Стога он дуплира много ствари које су сада у стандардној библиотеци, као што су контејнери и подаци о врстама. Најзначајније је то што су они изменили језик Ц++ како би обезбедили сигнале, тако да се Кут разреди не могу лако користити са разредима који нису из Кута. гткмм је могао да користи стандардни Ц++ за пружање сигнала без мењања језика Ц++. Такође, гткмм и остали *mm модули омогућавају вам да изградите софтвер који тешње сарађује са Гномовом радном површи. |
|
2. Колико је добар гткмм? |
|
|
Под којим системима се покреће? |
|
|
гткмм би требало да се покреће под било којим системом налик Јуниксу са инсталираним одговарајућим компајлерима и библиотекама. ГНУ-ов Ц++ компајлер (g++, део gcc-а) заједно са ГНУ-овим скупом алата (какав се налази на Линукс и *BSD системима) чине његово подразумевано окружење за изградњу. Такође се може изградити и користити на Виндоузу помоћу mingw алата за изградњу или MSVC-а. |
|
|
Колико је потпун? |
|
|
гткмм покушава да понуди сву функционалност коју нуди ГТК. То значи да би требало да будете у могућности да урадите било шта са гткмм-ом што је подржано у ГТК-у, и то једноставније. Ако нешто није покривено, желимо да знамо за то. ГЛиб садржи разреде са сличном функционалношћу као стандардни Ц++ разреди, на пример |
|
|
Да ли гткmm користи стандардне Ц++ контејнере као што су |
|
|
Да, верујемо в поновно коришћење стандардног Ц++ кода где год је то могуће. Ово можда неће бити очигледно на први поглед јер гткмм има |
|
|
Како се гткмм пореди са Кутом? |
|
|
|
3. Додатни подаци |
|
|
Где се може разговарати о gtkmm-у? |
|
|
Погледајте страницу за дискусију. |
|
|
Каква документација постоји за гткмм? |
|
|
Погледајте страницу са документацијом. |
|
|
Где могу да пронађем неки пример кода? |
|
|
Погледајте директоријум са примерима у модулу gtkmm-documentation. Већина њих се појављује у књизи за gtkmm. |
|
4. Коришћење gtkmm-а |
|
|
Које аргументе преводиоца треба да користим за превођење gtkmm програма? |
|
|
Погледајте референтну документацију. |
|
|
Како могу да добијем GTK објекат из gtkmm објекта? |
|
|
Ако вам је потребна нека GTK функционалност која није подржана кроз gtkmm, можете позвати метод |
|
|
Како могу да умотам GTK елемент у gtkmm инстанцу? |
|
|
|
|
|
Могу ли да користим C++ изузетке са gtkmm-ом? |
|
|
Да, али постоје ограничења. Пошто обичан C не зна шта је C++ изузетак, можете користити изузетке у свом gtkmm коду све док нема C функција у вашем стеку позива између бацача и хватача. То значи да свој изузетак морате ухватити локално. Бићете упозорени током извршавања о неухваћеним изузецима, а можете одредити и другачији руковалац за неухваћене изузетке. Неки gtkmm методи користе изузетке за пријављивање грешака. Врсте изузетака који могу бити бачени су наведени у референтној документацији тих метода. |
|
|
Како могу да користим Cambalache или Glade са gtkmm-ом? |
|
|
Погледајте поглавље Gtk::Builder у књизи за gtkmm. Cambalache замењује програм Glade. Glade се не може користити са GTK4/gtkmm4. |
|
|
Шта ради |
|
|
Ово значи „Елемент садржалац ће обрисати овај подређени елемент.“ Користите га ако не желите да бринете о томе када треба обрисати динамички додељене елементе. |
|
|
Како могу да научим о распоређивању елемеаната? Збуњен сам опцијама паковања. |
|
|
Cambalache је одличан начин да видите шта се може урадити са GTK и Гномовим елементима. Користите Cambalache да истражите избор елемената и да видите како се они могу спојити. |
|
|
Навикао сам на MFC (Microsoft Foundation Class Library). Где су Документ и Преглед? |
|
|
Document/View (што је варијанта Model–View–Controller (MVC) обрасца за дизајн софтвера) није директно подржан од стране GTK-а. Међутим, класе |
|
|
Како да учитам слике за коришћење са gtkmm-ом? |
|
|
Користите |
|
|
Да ли је gtkmm безбедан за нити? |
|
|
Ни GTK ни gtkmm нису безбедни за нити. Сав GUI код мора да се извршава у истој нити. Ако би ваш програм могао имати користи од коришћења више нити, погледајте поглавље Вишенитни програми у књизи о gtkmm-у. |
|