LINUX.ORG.RU

Основы GTK+, часть 2: Как использовать GTK+.


0

0

Это вторая статья из цикла статей под общим названием "Основы GTK+";. На примере простого приложения GTK+, написанного на языке C, а затем того же приложения, написанного на языках Python и C#, она познакомит вас с основами программирования с использованием GTK+. В конце вы найдете обзор нескольких полезных программ, которые помогут разрабатывать приложения GTK+ лучшие и быстре

>>> Подробности



Проверено: Shaman007 ()

Автору статей и переводчику огромное спасибо! Полезное дело делаешь, в отличие от... :)

random_code ★★
()

> лучшие и быстре

Запарили опечатки на ЛОР...

anonymous
()

Если учесть, что у gtk проблеммы не только с русскоязычной документацией, но и с англоязычной, то появление таких статей не может не радовать. Но главное, чтобы серия статей продолжилась. Действительно нужна человеческая документация о работе с более сложными виджетами gtk. Обучаться, вникая в исходный код реальных программ на gtk - это не дело.

mr ★★
()
Ответ на: комментарий от anonymous

QT - либа, безусловно, хорошая, вот только не unix-way оно... И дело не в hollywars KDE vs GNOME. Есть что-то на QT аналогичное XFCE или тому же ROX, где много чего писано на модном нынче тормозе-Python'e (PyGTK), и тем не менее, unix-way дает о себе знать относительной легковесностью и скоростью работы?..

anonymous
()
Ответ на: комментарий от anonymous

понятно, что на питоне не надо писать системы обработки больших объёмов данных или парсинга больших xml-ок, а вот несложный гуй а-ля инсталлятор, вполне сойдёт. Как говорится, "не люблю я кошек(питонов)" - "ты просто не умеешь их готовить" (с). Что в гтк мне нравится, что в минорных версиях api практически не меняется, в отличие от qt, и гтк таким сырым не выпускают:)

anonymous
()
Ответ на: комментарий от anonymous

Может, qt и не unix-way... Хотя, на мой взгляд, главное - чтобы было легко в освоении/применении и без свирепых тормозов. С этой задачей эта либа вроде как справляется очень хорошо :)

anonymous
()
Ответ на: комментарий от anonymous

К чести троллтеховцев нужно отметить, что если они что-то и меняют, то: 1) детально описывают изменения; 2) код, тем не менее, скомпилится и будет корректно работать (если брать две "соседних" версии библиотеки - некоторое время фича значится как deprecated, прежде чем исчезнуть).

anonymous
()

Проще сразу на wxWidgets писать. Хотя знание gtk никогда не помешает. Как и winapi...

ageless
()

Да, ясный ответ на вопрос "почему не стоит использовать ГТК".

Альфекс с его анекдотами на Си просто мегапрофи...

Очень разочарован в ГТК.

anonymous
()

Кошмарик..

Qt рулит

rys
()

Bookmarked! Автор молодец!

Makc ★★
()

гтк это хорошо.

Вот только после последнего апдейта стало все гтк-шное сильно тормозить:( что случилось даже не знаю

petrosha ★★★★★
()

GTK как раз документирован нормально и эта статья совсем не интересна. Действительно есть скажем так плохо документированные виджеты - вот про них статья будет полезнее. А еще лучше про bonobo.

x-term ★★
()
Ответ на: комментарий от anonymous

> QT - либа, безусловно, хорошая, вот только не unix-way оно...

Обоснуй, а то я не пойму, чем именно оно не Unix-way. Тем, что на C++?

VladimirP ★★★★
()

GTK+: button = gtk_button_new_with_label(_("Hello World")); Qt: button = new QPushButton(tr("Hello World"));

Это так, для сравнения.

anonymous
()

Плохая статья. И вот почему:

"hello, world" пишут вовсе не для того, чтобы объяснить, как именно работает код в данном окружении. Его пишут для того, чтобы *оттранслировать и запустить*. В том виде, в котором вся эта лабуда приведена в статье оттранслировать и запустить можно видимо только на машине, на которой и без этой статьи чего-то на gtk пишут.

Иначе говоря, первое о чём нужно говорить - это список пакетов, который нужно поставить. Второе - о том, как использовать imlib-config или pkg-config. Желательно привести рабочий Makefile. И *нужно* использовать стандартную локализацию (po), а не тихий бред посреди иероглифов.

А чего там в примере окнорисования будет - вопрос десятый. Чего надо, то и будет.

Так что если уж переводить, то http://www.gtk.org/faq и http://www.gtk.org/tutorial , а не пионерскую бредятину на тему "немного обо всём".

ignik
()

Спасибо переводчику.

Понравилось про использование Glade.

anonymous
()
Ответ на: комментарий от ignik

> Так что если уж переводить, то http://www.gtk.org/faq и http://www.gtk.org/tutorial , а не пионерскую бредятину на тему "немного обо всём".

Ну вот у нас с товарищем Makc'ом ещё года три назад идея появилась сделать gtk.org.ru как раз с таким наклоном. Пока стараний Макса хватило лишь на то, чтобы перевести вступление - http://gtk.org.ru/rus.html :-) У нас там ещё была мамба с некоторым количеством статей и новостей, но как-то оно всё загнулось. Хотя, по большому счёту, переводы на фиг не нужны. Было бы интересно сделать русскоязычный портал со статьями всё-таки. Своих сил вот не хватило - есть желание у кого-то ? ;)

hangy
()

Написали бы такое по WINGs......

kraw ★★★★
()
Ответ на: комментарий от petrosha

С 2.6->2.8? Неудивительно. А теперь ещё выкачай clearlooks-cairo или blackrock из cvs, и почувствуй, как твой p4 превращается в z80.

Midael ★★★★★
()
Ответ на: комментарий от Midael

>А теперь ещё выкачай clearlooks-cairo или blackrock из cvs, и почувствуй, как твой p4 превращается в z80.

делитесь травой с народом, вьюноша. Народ скажет вам спасибо

geek ★★★
()
Ответ на: комментарий от Midael

>С 2.6->2.8? Неудивительно

Я тоже сперва подумал, что дело в гтк+ 2.8

Когда не смог побороть тормоза, откатился обратно на 2.6, но версия новее чем была у меня. Тормоза остались. Так как система была обновлена полностью, то теперь фиг поймешь где именно грабли - в Х, в гтк или еще где. Вот народ говорит, что проблема с версией libtools которые линкуют ГТК программы как-то не правильно... надо попробовать.

petrosha ★★★★★
()
Ответ на: комментарий от Midael

> С 2.6->2.8? Неудивительно. А теперь ещё выкачай clearlooks-cairo или blackrock из cvs, и почувствуй, как твой p4 превращается в z80.

Это у вас в системе что-то не так. Перейдя в asp10 gtk 2.6->2.8, gnome 2.10->2.12, pango 1.8->1.10, поставив cairo-1.0 ну и естественно новые gtk2-engines с тем самым clearlooks-cairo - все просто летает. По ощущениям где-то быстрее, чем раньше, и уж точно нигде не медленнее.

anonymous
()
Ответ на: комментарий от anonymous

>Это у вас в системе что-то не так.

Знать бы где...

petrosha ★★★★★
()
Ответ на: комментарий от mr

> Если учесть, что у gtk проблеммы не только с русскоязычной документацией, но и с англоязычной

Где вы их находите, проблемы?
Или все еще живы впечатления 95-го года?

ЗЫ: Вы еще на WinAPI документацию не видели :-)

Inserter
()
Ответ на: комментарий от anonymous

Наверное я пропустил сеанс массового ура-гипноза... У всех 2.8 работает быстрее, и только у меня медленнее, и на gentoo и на ubuntu. ;)

Midael ★★★★★
()
Ответ на: комментарий от anonymous

Все что есть - хорошо. Это альтеранатива. Если ты узко смотришь на мир - это твои половые трудности. Тебя не должно быть. ;)

anonymous
()
Ответ на: комментарий от Midael

Странно... обновил с 2.6 на 2.8 - стало тормозить. Недавно обновил на последнюю версию, кажется 2.8.9 - стало работать как раньше. Доктор, помогите мне!

lester_dev ★★★★★
()

IMHO, на GTK приятнее начинать писать GUI, чем на QT. Хотя бы потому что понимаешь, как всё работает и не задаёшься вопросом каким образом qmake создаёт кучу makefile'ов ;), и зачем нужен moc.

Правда последнее GTK тормозит.

Не знаю, это только у меня так или нет, но если firefox (использующий gtk) выдаёт диалог открыть/сохранить - я выбираю Open With -> Browse..., и набираю /usr/bin (чтобы добраться, скажем, да ark), то винчестер начинает угрожающе шуршать, и зависает на секунд 10, открывая список файлов в /usr/bin. :(

PashaKustov ★★
()
Ответ на: комментарий от PashaKustov

> Не знаю, это только у меня так или нет, но если firefox (использующий gtk) выдаёт диалог открыть/сохранить - я выбираю Open With -> Browse..., и набираю /usr/bin (чтобы добраться, скажем, да ark), то винчестер начинает угрожающе шуршать, и зависает на секунд 10, открывая список файлов в /usr/bin. :(

как-то это странно. у меня допустим описанные операции проходят совершенно прозрачно. firefox 1.5 && gtk+-1.2.10nb8 и в /usr/bin порядка 500 файлов. машинка Впрочем не самая слабая.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

У меня тоже не очень слабая...

lnx@skywriter ~ $ ls -l /usr/bin/|wc -l
2508
lnx@skywriter ~ $ uname -a
Linux skywriter 2.6.14-gentoo-r6 #1 SMP PREEMPT Fri Dec 30 19:05:48 GMT 2005 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
lnx@skywriter ~ $ free
             total       used       free     shared    buffers     cached
Mem:       1033284    1016396      16888          0          0     716244
-/+ buffers/cache:     300152     733132
Swap:      4112600        252    4112348
lnx@skywriter ~ $ mount|grep xfs
/dev/sda1 on / type xfs (rw)
/dev/sda3 on /opt type xfs (rw,noatime)
/dev/sda4 on /home type xfs (rw,noatime)
/dev/sdb2 on /mnt/sdb2 type xfs (rw,noatime)
/dev/sdb3 on /mnt/sdb3 type xfs (rw,noatime)

PashaKustov ★★
()
Ответ на: комментарий от anonymous

Комары и клопы - тоже альтернатива. Им тоже надо быть? Или пусть лучше сдохнут и не досаждают?

anonymous
()
Ответ на: комментарий от mr

По хорошему надо бы на gtkperf проверить на нескольких разных темах и выложить результаты. Жалко, что нет qtperf, можно было бы поставить точку в давних спорах qt vs gtk.

Midael ★★★★★
()
Ответ на: комментарий от Midael

> По хорошему надо бы на gtkperf проверить на нескольких разных темах и выложить результаты. Жалко, что нет qtperf, можно было бы поставить точку в давних спорах qt vs gtk.

Каким образом?

anonymous
()
Ответ на: комментарий от klalafuda

>как-то это странно. у меня допустим описанные операции проходят совершенно прозрачно. firefox 1.5 && gtk+-1.2.10nb8 и в /usr/bin порядка 500 файлов. машинка Впрочем не самая слабая.

разве ФФ умеет использовать ГТК 1.х? Помоему нет. Если установлено только 1.х, то он работает вообще без ГТК, как и раньше.

petrosha ★★★★★
()
Ответ на: комментарий от mr

>Да как вам всем это удаётся? Обновлял с 2.6.4 до 2.8.6, скорость никак не изменилась.

:) Ну что за люди? Вечное "У меня работает, а вы можете убить себя оппол!"

Здесь же не ixbtшное WinVsLin. Никто не говорит, что проблемы именно в ГТК и не кричит по этому поводу "ГТК-Суксь". Но эффект наблюдается и не у одного человека. Хочется разобраться... Помогли бы лучше.

petrosha ★★★★★
()
Ответ на: комментарий от petrosha

> разве ФФ умеет использовать ГТК 1.х? Помоему нет. Если установлено только 1.х, то он работает вообще без ГТК, как и раньше.

читаем выше: ps: "ессно s/gtk+-1.2.10nb8/gtk2+-2.8.10"

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

Вот сейчас скачаю гтк2.8, протестирую на gtkperf и выложу результаты в talks.

Midael ★★★★★
()

там в примере на японском написано sekainikonnitiha. Может, правильнее будет konnitiha,sekai?

anonymous
()
Ответ на: комментарий от hangy

> Своих сил вот не хватило - есть желание у кого-то ? ;)

Есть огромное желание, нет времени :-(. А в чем основная задача -- просто русскоязычный перевод? А есть решение, как следить за изменениями оригинала?

Я бы подрядился, пишите на eugine на aroks в kiev в ua

eugine_kosenko ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.