Если хочешь понять, как устроена и работает X Window System, то начни с Motif.
Если хочешь писать на чём-то модном и кривом -- учи GTK+, но тогда ты так и не узнаешь правды про то, как "оно" должно быть на самом деле.
QT огромен и кажется, что разработчики не остановятся на достигнутом и один раз с помощью этого "тулкита" можно будет писать программы для кофеварок, пылесосов и холодильников. О кривизне или прямоте судить не берусь, так как реального опыта работы с Кьют не имею.
А в чём проявляетса кривизна GTK? Жем же он так плох. Вообсчем,я писать буды ГПЛ прогу, не хочу много времени затрачивать на Х навороты, но и на кылих писать не хочу, немного подычить я бсиотоки хочы, я зе не Базу даных писать буду :)
2rush: если уже тебе так надо чтобы именно shared memory по сети передавалось то попробуй FireWire или USB с OHCI - можно замапить физическую память по сетки, а уже оотуда выгребать где у тебя этот нужный кусок. вообще если почитать man X то там написано: X servers listen for connections on a variety of different communications channels (network byte streams, shared memory, etc.). Since there can be more than one way of contacting a given server, The hostname part of the display name is used to determine the type of channel (also called a transport layer) to be used. соответственно если ты локально пашешь то используется shared memory - если семоутно то network byte stream.
2lg: Молодо-зелено. Ты собрался рисовать окошки и их содержимое в среде X Window используя только вызов socket()? Флаг в руки и пример кода "hello world" в студию. Окошко, кнопку с надписью "push me", по нажатию на коию вызывается printf. Сделаешь без вызова функций X, Xt и им подобных -- попрошу резюме прислать, чесслово :)
А причём тут shared memory я, кстати, тоже не понимаю.
2ksiadz по поводу кривизны. Посмотри в архивах ФИДО (ru.linux), там такой Виктор Вагнер неоднократно проезжался по вопросу кривизны ГТК. Меня же лично больше всего раздражает во-первых то, что этот "тулкит" в упор не понимает X Resources, во-вторых то, что он *очень* скверно документирован, а в третьих то, что слишком произвольно меняется API от версии к версии. Если поковыряться, то можно и кучу других огрехов найти, но мне сие нах не нужно, так как пишу на старом добром Мотифе.
2DmVo -- lg не собирался рисовать окошки с помощью XProtocol, он просто констатировал что реальный стандартизированный нижний уровень работы с иксами это XProtocol а не API. Вы не умеете абстрактно мыслить, DmVo. Будь я взрослым и серьезным дядечкой, я бы не поручил Вам писать спецификации, только кодировать.
2lg: Не работает, но я понял, про что ты говоришь. Но речь-то в первоначальном постинге шла, кажется, о программировании GUI. Напоминаю ключевые слова "кнопку с надписью "push me", по нажатию на коию вызывается printf", сиречь callback.
Я на своем мнении не настаиваю, но у меня есть какое-то смутное подозрение, что GTK и KDE друг друга перегрызут, и останется Motif. Хотя объяснить это ощущение не могу.
2All:
Интересно всех понесло... Чел всего лишь попросил субъективных мнений GTK vs. Qt...
2ksiadz (*) (2002-08-07 18:09:55.682)
При всей моей нелюбви к плюсам, вынужден признать, что Qt гораздо "прямее",
нежели GTK. Если плюсатость - не порок, то всячески рекомендую Qt.
Только не гонись за новыми версиями - "подсядь" на какую-нибудь, и на ней
живи. Исходники GPL, можно за собой таскать...
2DmVo: я рассылкой резюмэ не занимаюсь .. и не работает это значит не появляется кнопка "push me"? :)
Die-Hard прав .. всех понесло
еще я сомневаюсь насчет момента о том что "прямой" софт лучше.
Что лучще - если ты с первого раза приготовли вкусную мягинькую свининку
или у тебя она сгорела и вообще ее жрать нельзя после твоей готовки.
2DmVo: Спасибо за советик и разясненийе. Вот только чюет моя душа что приидиотса и одно и дпыгое юзать, всио надо на сбоеи шкуре испытать, но начну с QT , ыж слишком много его рахвалибают.
2Antichrist: А у тикля есть C-биндинги? Лень мне документацию читать, так что лучше ты скажи :)
Кстати, Мотиф таки развивается по самое не могу. Правда, не всегда в правильном направлении -- например, включение в последнюю версию 2.2 виджетов от Integrated Computer Solutions было явной ошибкой...
Gtk глючит если программа многопотоковая. Я в свое время отказался от нее именно по этой причине. А в целом очень нравилась. Особых проблем не было. Но считаю незачем тратить время на рисование GUI, если есть билдеры. Думаю GUI на с++ писать надо. Даже не писать, пускай билдер делает.
Какое отвратительно извращение - GUI на C++. Нормальные визуальные билдеры делают XML, а не сраный C++. Кроме того, только самый убогий и примитивный гуй можно нарисовать билдером, а гуй серьёзный обязательно будет динамическим - и вот в этом случае ублюдочный C++ накрывается медным тазом.
2Antichrist: А можно пример этого самого "нормального визульного билдера", который делает XML? Откуда взять можно, платный ли он аль бесплатный? Не для "уязвления" спрашиваю, а для дела.
Элементарно, Ватсон
Glade - сохраняет файл *.glade который и есть XML. Его потом из любого языка парсить можно. Например Python, прикрутив предварительно pyGTK. Весьма нехило получается (у меня правда опыт с ним небольшой).
Антихрист - а пачаму это GTK ресурсы не поддерживает? Ну .Xdefaults он действительно не читает - но они предлагают сходную функциональнось через .gtkrc.
Нет, я, пожалуй, воздержусь от справедливой ругани по поводу отстойности .gtkrc, у А-ста это всё равно лучше получится. Так что предоставим слово ему :)
ну, по поводу убогости gtkrc тут недавно vitus неплохо высказался. особенно по-поводу per-display configuration. самому ссылку искать лень, но не думаю, что найти ее очень сложно :)
DmVo,ananas - я не собираюсь спорить АЦТОЙ gtkrc или нет. Антихрист утверждал что GTK+ не умеет работать с ресурсами. Я же только заметил, что оно имеет аналогичную (плохую/хорошую) функциональность.
Антихрист - и еще вопрос.
По поводу C-биндингов для Tk. По-моему, высокоуровневого API у Тк нет (только базовые функции типа TkCanvas, рисование, текст - для желающих свои виджеты писать), поэтому чтобы напрямую его из C вызывать (хоть это и извращение) так или иначе придется вначале Tcl интерпретор создавать, а потом передавать ему описание интерфейса написанного на Tk/Tcl. Вроде бы в Питоновском Ткинтере так исделано.
Если ты хочешь получить совет по поводу GUI-средств, то опиши требования к ним максимально подробно. После этого и можно будет раговаривать о том, что подойдет лучше. В противном случае всегда получится то, что и здесь - масса эмоциональных высказываний почти без аргументов. От себя могу посоветовать - посмотри на Fast Light Tool Kit http://www.fltk.org, он LGPL-ный.
Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).
Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).
Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).
Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).