LINUX.ORG.RU

Использование тулкита GTK

 


0

3

Мне нужно писать кое-какой гуй на с++. Причем очень важно, чтобы он был кроссплатформенным. Т.е. в основном он должен работать под оффтопиком, но поддержка сборки под линукс обязательна. В частности ПО должно работать под ОС Астра Линукс. Сейчас использую Qt. Технически меня всё устраивает, но политически... терзают сомнения.

Если рассматривать в качестве альтернативы GTK, то насколько жизнеспособно писать кроссплатформенный гуй на нем? На сегодняшний день, естественно.

Если кто-то даст качественный объективный ответ, без холиварных моментов, буду ему очень благодарен. :)

Ответ на: комментарий от Zhbert

Какие?

Давай не будем. Мне просто хочется узнать, есть ли у кого-то опыт кроссплатформенной разработки под Gtk (современный), и какое мнение у них сложилось об этом тулките.

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

Очевидно же, сейчас есть возможность использовать Qt исключительно потому что есть GPL версия для сообщества. Если возникнет желание купить у Qt поддержку или версию где нет багов и косяков что есть в обычной версии или захочется купить под другой лицензией для возможности выпуска приложения без обязанности раскрывать исходники то ничего не получится. Более того, покупная лицензия такова что кута может её отозвать устроив разработчику сладкую жизнь и весёлые приключения если просечёт что купили у неё не те или те кто не там родились.

Для софта в три кнопки или софта что пилит толпа из сообщества (типа кедов) всё ок. Для коммерческого или заказного софта часто требуется давать ганатию на ПО и ГПЛ тут невозможна просто юридически так как ГПЛ запрещает давать гарантию на ПО, бывает нужна поддержка или расширенная версия Qt которая только за плату. Но ни то ни это ТролльТех не даёт больше.

anonymous
()

на Qt под винду проще. Да и под линукс тоже несложно.

ГТК+ под линукс нормально. Но под винду – гемор. Я вот даже и не знаю, компилируются ли последние библиотеки агломерации ГТК под винду или нет? Там же не только одна ГТК+, там глиб, гио, кэйро, еще всяких полно.

Если сборку настроить, то уже без разницы на каком тулките писать. Оба хорошие.

hibou ★★★★★
()

В частности ПО должно работать под ОС Астра Линукс.

Тогда проще оставаться на Qt, в Астре для неё наиболее полная инфраструктура.

Если рассматривать в качестве альтернативы GTK

Я так на всякий случай напомню, что GTK — альтернатива не Qt, а конкретно QtGui+QtWidgets. Да, гуй ты на ней напишешь, но только гуй.

И GTK, и QtWidgets — объектно-ориентированные библиотеки, только вторая написана для языка со встроенным ООП, а первая — для языка, где ООП имитируется руками. Это не приговор, например, в ядре Linux аналогичный подход работает вполне успешно. Только вот код при этом выглядит гораздо более многословно и менее читаемо. Есть обёртка в лице gtkmm, но тогда впору задуматься, что тяжелее тащить — единый QtWidgets или связку GTK+gtkmm.

Но решать тебе, конечно.

P.S. По большому счёту, если ты пишешь линукс-эксклюзивы, по барабану, на чём писать. А вот если надо, чтобы твои творения ещё и под винду собирались, тогда GTK и весь G-стек, который она тащит, начинает причинять боль, и привлекательность Qt резко повышается…

Я эти темы поднимал на ЛОРе несколько лет назад: раз, два. В комментариях написали много интересного…

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 3)
Ответ на: комментарий от anonymous

Для коммерческого или заказного софта часто требуется давать ганатию на ПО и ГПЛ тут невозможна просто юридически так как ГПЛ запрещает давать гарантию на ПО, бывает нужна поддержка или расширенная версия Qt которая только за плату.

В таком случае и GTK не годится.

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

Для коммерческого или заказного софта часто требуется давать ганатию на ПО и ГПЛ тут невозможна просто юридически так как ГПЛ запрещает давать гарантию на ПО

???

Это где такое написано? Тот же RedHat с платной подпиской как раз даёт гарантию на купленное у него ГПЛ ПО.

monk ★★★★★
()
Ответ на: комментарий от monk
ОТСУТСТВИЕ ГАРАНТИЙ
11. Поскольку использование Программы осуществляется безвозмездно, на нее не
предоставляется никаких гарантий, за исключением тех, которые установлены
действующим законодательством. Если иное не указано в письменной форме,
правообладатели и (или) иные стороны предоставляют Программу в том виде, в
котором осуществляется ее распространение, без принятия на себя каких-либо
гарантийных обязательств, как выраженных явно, так и подразумеваемых, в том
числе подразумеваемых гарантий качества и пригодности для конкретных целей. Вы
несете все риски, касающиеся качества и работы Программы. В случае, если в
Программе будут обнаружены недостатки, на Вас возлагаются все расходы, связанные
с обслуживанием, восстановлением или исправлением Программы.
12. Если иное не предусмотрено действующим законодательством или соглашением
сторон, заключенным в письменной форме, правообладатель или иное лицо, которое
имеет возможность изменять и (или) повторно распространять Программу на
условиях, сформулированных выше, не может нести ответственность перед Вами за
причиненный ущерб, включая ущерб общего либо специфического характера,
причиненный случайно или являющийся следствием использования программы либо
невозможности ее использования (в том числе уничтожение или модификацию
информации, либо убытки, понесенные вами или третьими лицами, либо сбои
Программы при взаимодействии с другим программным обеспечением), в том числе и в
случаях, когда правообладатель или третье лицо предупреждены о возможности
причинения таких убытков.

Гарантию в целом на своё произведение дать можешь. Гарантию на графическую библиотеку дать не имеешь права так как лицо которому ты передаёшь софт получает и GPL лицензию на граф библиотеку тоже с ровно теми же правами и обязанностями что и ты (разработчик). С точки зрения GPL нет разницы ты сделал софт или тебе дали софт, все равны в правах и обязанностях. Отдельно договор можешь составить где в целом ты отвечаешь за работоспособность программы, но при этом если пользователь решить использовать лишь часть твоей программы, а именно библиотеки под GPL сами по себе (ну вот захоца ему) у тебя будет безвыходная ситуация так как с одной стороны ты дал гарантию на своё произведение целиком, но оно же подразумевает и все его части, но по факту не на все, а только когда они все вместе. Это тонкий момент. Я сомневаюсь на этот момент кому-то не плевать, но всё же.

Чисто в рамках ГПЛ ты гарантию давать не имеешь право, заключай отдельный договор. В котором гарантия подразумевает не гарантию работоспособности, а гарантию что если что-то сломается ты починишь. Вроде одно и тоже? Но нет, разница как пропасть. Но в целом зависит отситуации.

  • Я гарантирую что это чайник никогда не сломается (пользователь уехал на всю жизнь в Антарктиду с вечным чайником)
  • Я гарантирую что если этот чайник сломается я починю (ты едешь в Антарктиду чинить чайник)

Если пользователь решит использовать только крышку от чайника которая отдельный проект и под GPL то

В случае, если в Программе будут обнаружены недостатки, на Вас возлагаются все расходы, связанные с обслуживанием, восстановлением или исправлением Программы.

Распространяется на пользователя на 142% и по барабану какие вы там договора заключали. За чайник в целом ты в ответе если сам зарёкся, за чисто крышку нет если она сама по себе, но да если вместе с чайником.

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

Тот же RedHat с платной подпиской как раз даёт гарантию на купленное у него ГПЛ ПО.

Никакой гарантии на работоспособность ПО красношапка не даёт, она даёт гарантию того что если что сломается они у себя починят и ты должен получить исправление. Иными словами она даёт гарантию на поддержку, а не на ПО. Собственно продавая ПО она продаёт поддержку на это ПО, а не само ПО и его работоспособность. Не стоит это путать.

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

Написано же «Если иное не указано в письменной форме…».

Отдельно договор можешь составить где в целом ты отвечаешь за работоспособность программы

А он именно такой и есть. Продаёшь-то программу.

с одной стороны ты дал гарантию на своё произведение целиком, но оно же подразумевает и все его части, но по факту не на все, а только когда они все вместе

Гарантия на произведение подразумевает, что гарантию на части при их использовании в составе произведения. Также как гарантия на автомобиль не подразумевает гарантии на то, что его двигатель будет работать в составе самодельного генератора электроэнергии.

Я гарантирую что это чайник никогда не сломается (пользователь уехал на всю жизнь в Антарктиду с вечным чайником)

Гарантия не делает чайник вечным. Она всего лишь обязывает производителя в случае поломки чайник заменить или починить.

И пользователь из Антарктиды должен будет приехать м чайником по месту приобретения или нахождения сервисного центра, чтобы получить гарантию.

monk ★★★★★
()