LINUX.ORG.RU

QT или GTK


0

0

что быбрать, QT или GTK? Собираюсь писать ппограму дла Х, но так и не могу решить что лутше использобать. Хочу узнать ваши мнения, советы.

Спасибо


начни с GTK - если я не ошибаюсь то с использованием QT нельзя писать комерческие продукты.

lg ★★
()

Тут могут быть разные соображения.

Если хочешь понять, как устроена и работает X Window System, то начни с Motif.

Если хочешь писать на чём-то модном и кривом -- учи GTK+, но тогда ты так и не узнаешь правды про то, как "оно" должно быть на самом деле.

QT огромен и кажется, что разработчики не остановятся на достигнутом и один раз с помощью этого "тулкита" можно будет писать программы для кофеварок, пылесосов и холодильников. О кривизне или прямоте судить не берусь, так как реального опыта работы с Кьют не имею.

Ну, вроде бы всё.

ДВ

DmVo
()

Ну чтоб узнать как "оно" на самом деле работает никакой Motif не нужен - достаточно socket() или shared memory ..

lg ★★
()

Можно поподробней про shared memory. В особенности какая нужна (distributed?? :) shared memory чтобы работало по сети.

rush
()

А в чём проявляетса кривизна GTK? Жем же он так плох. Вообсчем,я писать буды ГПЛ прогу, не хочу много времени затрачивать на Х навороты, но и на кылих писать не хочу, немного подычить я бсиотоки хочы, я зе не Базу даных писать буду :)

Спасибо бсем за советы.

ksiadz
() автор топика

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.

lg ★★
()

s/семоутно/ремоутно

lg ★★
()

2lg: Молодо-зелено. Ты собрался рисовать окошки и их содержимое в среде X Window используя только вызов socket()? Флаг в руки и пример кода "hello world" в студию. Окошко, кнопку с надписью "push me", по нажатию на коию вызывается printf. Сделаешь без вызова функций X, Xt и им подобных -- попрошу резюме прислать, чесслово :)

А причём тут shared memory я, кстати, тоже не понимаю.

2ksiadz по поводу кривизны. Посмотри в архивах ФИДО (ru.linux), там такой Виктор Вагнер неоднократно проезжался по вопросу кривизны ГТК. Меня же лично больше всего раздражает во-первых то, что этот "тулкит" в упор не понимает X Resources, во-вторых то, что он *очень* скверно документирован, а в третьих то, что слишком произвольно меняется API от версии к версии. Если поковыряться, то можно и кучу других огрехов найти, но мне сие нах не нужно, так как пишу на старом добром Мотифе.

ДВ

DmVo
()

2DmVo -- lg не собирался рисовать окошки с помощью XProtocol, он просто констатировал что реальный стандартизированный нижний уровень работы с иксами это XProtocol а не API. Вы не умеете абстрактно мыслить, DmVo. Будь я взрослым и серьезным дядечкой, я бы не поручил Вам писать спецификации, только кодировать.

alter_ego
()

2alter_ego: Как говорил в таких случаях мой покойный еврейский дедушка "бодливой корове Бог рогов не дал". Без обид только :)

DmVo
()

а забыл usage:
$ gzip -d hello_world.gz
$ Xnest -geometry 800x600 :2 &
$ nc 127.1 6002 < hello_world >/dev/null

shared memory сдесь притом что она работает как транспортный леер для X, если у тебя локальный дисплей.
PS: nc - netcat

lg ★★
()

а мне казалось что если человек может написать gсс -O3 -S то это не значит что он суперпрограммист на ассемблере. Тут нет аналогии??

dilmah ★★★★★
()

супер программер вообще ничего не пишет - за него все пишет им написанная программа.

lg ★★
()

2lg: Не работает, но я понял, про что ты говоришь. Но речь-то в первоначальном постинге шла, кажется, о программировании GUI. Напоминаю ключевые слова "кнопку с надписью "push me", по нажатию на коию вызывается printf", сиречь callback.

Так что резюме пока слать не надо :)))

ДВ

DmVo
()

Я на своем мнении не настаиваю, но у меня есть какое-то смутное подозрение, что GTK и KDE друг друга перегрызут, и останется Motif. Хотя объяснить это ощущение не могу.

anonymous
()

2All:
Интересно всех понесло... Чел всего лишь попросил субъективных мнений GTK vs. Qt...

2ksiadz (*) (2002-08-07 18:09:55.682)
При всей моей нелюбви к плюсам, вынужден признать, что Qt гораздо "прямее",
нежели GTK. Если плюсатость - не порок, то всячески рекомендую Qt.
Только не гонись за новыми версиями - "подсядь" на какую-нибудь, и на ней
живи. Исходники GPL, можно за собой таскать...

Die-Hard ★★★★★
()

2DmVo: я рассылкой резюмэ не занимаюсь .. и не работает это значит не появляется кнопка "push me"? :)
Die-Hard прав .. всех понесло

еще я сомневаюсь насчет момента о том что "прямой" софт лучше.
Что лучще - если ты с первого раза приготовли вкусную мягинькую свининку
или у тебя она сгорела и вообще ее жрать нельзя после твоей готовки.

lg ★★
()

2DmVo: и не работает это значит не появляется кнопка "push me"? :)

Именно так :)

DmVo
()

2DmVo: Спасибо за советик и разясненийе. Вот только чюет моя душа что приидиотса и одно и дпыгое юзать, всио надо на сбоеи шкуре испытать, но начну с QT , ыж слишком много его рахвалибают.

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

Ребят, кончайте флеймы. 
Тут недавно по этому поводу опрос был на ЛОРе вот по результатам лидирует QT с достатчно большим отрывом.

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

Кривизна GTK+ в том, что оно не умеет работать с ресурсами. В отличии от Motif и Tk...

Короче, мой совет - Tcl/Tk. Не надо никаких GTK или тем более плюсанутого Qt.

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

Мотиф уже в прошлом. И развиваться не будет. А вот Tk - очень даже современный и правильный тулкит. За ним будущее.

Antichrist
()

2Antichrist: А у тикля есть C-биндинги? Лень мне документацию читать, так что лучше ты скажи :)

Кстати, Мотиф таки развивается по самое не могу. Правда, не всегда в правильном направлении -- например, включение в последнюю версию 2.2 виджетов от Integrated Computer Solutions было явной ошибкой...

ДВ

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

Есть, конечно же. Это же ембедабельный язык. Только вот писать на Цэ гуйню - верх извращения. Дальше только ассемблер...

Antichrist
()

2Antichrist:

>Только вот писать на Цэ гуйню - верх извращения.

В принципе, согласен. Но не так уж это и страшно, на самом-то деле.

ДВ

DmVo
()

Gtk глючит если программа многопотоковая. Я в свое время отказался от нее именно по этой причине. А в целом очень нравилась. Особых проблем не было. Но считаю незачем тратить время на рисование GUI, если есть билдеры. Думаю GUI на с++ писать надо. Даже не писать, пускай билдер делает.

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

Какое отвратительно извращение - GUI на C++. Нормальные визуальные билдеры делают XML, а не сраный C++. Кроме того, только самый убогий и примитивный гуй можно нарисовать билдером, а гуй серьёзный обязательно будет динамическим - и вот в этом случае ублюдочный C++ накрывается медным тазом.

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

2Antichrist: А можно пример этого самого "нормального визульного билдера", который делает XML? Откуда взять можно, платный ли он аль бесплатный? Не для "уязвления" спрашиваю, а для дела.

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

Элементарно, Ватсон
Glade - сохраняет файл *.glade который и есть XML. Его потом из любого языка парсить можно. Например Python, прикрутив предварительно pyGTK. Весьма нехило получается (у меня правда опыт с ним небольшой).
Антихрист - а пачаму это GTK ресурсы не поддерживает? Ну .Xdefaults он действительно не читает - но они предлагают сходную функциональнось через .gtkrc.

geekkoo

anonymous
()

2geekkoo:

Нет, я, пожалуй, воздержусь от справедливой ругани по поводу отстойности .gtkrc, у А-ста это всё равно лучше получится. Так что предоставим слово ему :)

ДВ

DmVo
()

ну, по поводу убогости gtkrc тут недавно vitus неплохо высказался. особенно по-поводу per-display configuration. самому ссылку искать лень, но не думаю, что найти ее очень сложно :)

ananas ★★★★★
()

DmVo,ananas - я не собираюсь спорить АЦТОЙ gtkrc или нет. Антихрист утверждал что GTK+ не умеет работать с ресурсами. Я же только заметил, что оно имеет аналогичную (плохую/хорошую) функциональность.

geekkoo

anonymous
()

Антихрист - и еще вопрос.
По поводу C-биндингов для Tk. По-моему, высокоуровневого API у Тк нет (только базовые функции типа TkCanvas, рисование, текст - для желающих свои виджеты писать), поэтому чтобы напрямую его из C вызывать (хоть это и извращение) так или иначе придется вначале Tcl интерпретор создавать, а потом передавать ему описание интерфейса написанного на Tk/Tcl. Вроде бы в Питоновском Ткинтере так исделано.

geekkoo

anonymous
()

Насчет ресурсов:
Не совсем мне понятны сии заявы. Что значит -- "не поддерживает!" и
"не умеет!"?

Например, ежели мне надо X ресурсов поиметь, то я, типа, Xrm и пользую...
И кто мне помешает ее пользовать с-под Qt, Gtk, etc. ?

Я, вообще, под Qtями ее, родную, и пользую. Очень прозрачная и для
ленивых написана!

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

В том и дело, что функциональность не аналогичная. Лишь малая часть возможностей, и никакой гибкости. И вообще - база ресурсов ОБЯЗАНА быть общей...

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

Именно так, вместе с Tk надо ещё и тикл тащить. Но это как раз и есть весьма правильный подход.

Antichrist
()

Если ты хочешь получить совет по поводу GUI-средств, то опиши требования к ним максимально подробно. После этого и можно будет раговаривать о том, что подойдет лучше. В противном случае всегда получится то, что и здесь - масса эмоциональных высказываний почти без аргументов. От себя могу посоветовать - посмотри на Fast Light Tool Kit http://www.fltk.org, он LGPL-ный.

anonymous
()

Присоединяюсь к последнему (fltk). На первых порах кажется убогим, есть ошибочки. Но для меня перевесили его простота и миниатюрность.

OlegY
()

Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).

OlegY
()

Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).

OlegY
()

Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).

OlegY
()

Присоединяюсь к последнему (fltk). Немного убог и некрасив, есть ошибочки. Перевешивает простота использования и миниатюрность. Кстати, существет полно подобных библиотек см. http://home.pacbell.net/atai/guitool/ (правда некоторые ссылки устарели, ищи googlом).

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