LINUX.ORG.RU

Графические тулкиты, реквестирую сравнительные обзоры кода


0

0

Удосуживался ли кто-либо сделать сравнительный обзор тех же GTK vs. Qt vs. Tk (хе-хе) в виде реализаций программы, не просто выводящей хеллоуворлд с кнопкой окей, а в виде решения какой-либо простой распространенной задачки — ну там, из SQLite-базы вычитать, в сетке отобразить, позволить редактирование элементов разного типа, сохранить обратно?

Как наглядный туториал было бы интересно почитать, если бы что-то такое даже в первом приближении имелось.

★★★★★

А я openmotif еще вспомнил :)

Eddy_Em ☆☆☆☆☆
()

Просто пиши на brainfuck

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

>писал с применением и гтк и кьют. последний понравился больше

В кутях из коробки просто больше прикручено.

anonymous
()

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

Obey-Kun ★★★★★
()

если нужно сравнение, то оно выглядит так:
qt>gtk

Novell-ch ★★★★★
()

>ну там, из SQLite-базы вычитать, в сетке отобразить, позволить редактирование элементов
очень интересно, в делфях или 1с каком-нибудь это легко делается, интересно, есть ли в это тулкитах

anon1984
()

>> из SQLite-базы вычитать

У меня такое ощущение, что графические тулкиты не должны иметь к этому отношения.

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

в общем то да.
что ни кинься - все есть, и все в едином стиле.

и у сигнал-слотов есть своя особая прелесть )

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

да, SQL там глубоко под капотом. но ничто создать произвольный контрол и связать его с произвольным типом метаданных не мешает )
рда и «метод» к этому типу впринципе можно свой прикрутить. ладно, оффтоп)

anon1984
()

GTK+. Ну, ещё возможно Tk. Всё остальное суть ересь и должно быть предано анафеме

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

ПМСМ, этому лучше остаться на уровне языка, но не тулкита, на этом языке написанного. Правда, в устройстве графических приложений я разбираюсь, мягко говоря, неважно, так что...

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

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

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

Ну хоть кто-то из нормальных людей в треде появился.

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

таким образом GTK и QT сравнивать немного некорректно

ты сравни код на GTK/Vala и на QT/C++

lazyklimm ★★★★★
()
Ответ на: Буду оригинален от fat_angel

>fox-toolkit!

и fltk, ага, но опять же, пейсать только на C++, либо делать велосипедоврапперы

lazyklimm ★★★★★
()

Для Гнома есть удобной Vala.

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

>>из SQLite-базы вычитать

У меня такое ощущение, что графические тулкиты не должны иметь к этому отношения.


А у меня такое ощущение, что кьют в отличие от гтк не только графический тулкит

thrall
()

а ничего что эти штуки на разных языках написаны?

true_admin ★★★★★
()

ну там, из SQLite-базы вычитать, в сетке отобразить, позволить редактирование элементов разного типа, сохранить обратно?

С этой задачей Qt справится НАМНОГО лучше. Дело в том, что там достаточно асоциировать нужную модель (как называется - не помню) ассоциировать с QTableView, что делается в 5 строк.

А с Gtk или Tk придется извлекать данные из таблицы БД (SELECT * FROM table;), обращаясь к сишной библиотеке sqlite, а потом создавать виджет-таблицу и ручками ее заполнять. А еще вас ждет куча гемороя по внесению изменений в таблицу.

А вообще, сравнивать Qt, GTK и Tk на этой задаче абсолютно бессмысленно, т.к. два последние - всего лишь тулкиты для создания GUI и никаких средств для работы с БД не предоставляют, а Qt - модульный набор инструментов для всего и вся, в частности, модуль QtSQL предоставляет средства для работы с БД.

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

набор инструментов для всего и вся

bloatware? Так бы сразу и сказал.

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

Ого, мощное сравнение... По теме: GTK хорош только в качестве базы для более высокоуровневых проектов, таких как например wxWidgets/GTK или Mono/GTK#. Писать на чистом GTK... ну ты понял.

Готовое к применению - это конечно Qt, его я бы и посоветовал.

I-Love-Microsoft ★★★★★
()

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

Теперь ясно?

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

> С этой задачей Qt справится НАМНОГО лучше. Дело в том, что там достаточно асоциировать нужную модель (как называется - не помню) ассоциировать с QTableView, что делается в 5 строк.

Есть какой-то ресурс, где такой код, желательно комментированный для самых маленьких, можно почитать? Чисто теоретические «пять строк» это не то.

А вообще, сравнивать Qt, GTK и Tk на этой задаче абсолютно бессмысленно, т.к. два последние - всего лишь тулкиты для создания GUI и никаких средств для работы с БД не предоставляют, а Qt - модульный набор инструментов для всего и вся, в частности, модуль QtSQL предоставляет средства для работы с БД.


Ты не так понял.

В гриде же надо как-то полученные данные показать?
Надо как-то их редактировать?
Надо узнавать, какие данные были изменены?
Надо забрать изменившиеся данные в одну кучку, чтобы потом засунуть в базу обратно?

И чем же тут тулкит не при делах?

shimon ★★★★★
() автор топика

Это ты толсто

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

на чем Qt будет выигрывать, потому что в Gtk на каждый чих нужно сто ритуальных строк

fixed

Признайся, ты просто вбросил. Разницу между С и С++ не видишь? И коню понятно что в С для ООП нужны танцы с бубном. Но только чуть более С подходит для программирования уровня тулкита. А вот сравнение PyGtk и PyQt, Gtkmm и QtGui мне тоже интерестно.

А бд причем? Gtk - гуй, Qt - платформа. Логично что в первом нет бд. Но все равно оба нужны для десктопного софта, который выкладывается на шару в Инете скачивается пользователями для хорового свистопердения. Этот софт должен быть легким и реактивным. На крайняк пожходят для уровня бекенда для какого-то прикладного фреймворка. Но до нормального прикладного уровня оба низковаты. Qt - чуть повыше, G* - чуть пониже. Ничего не поделаешь, мало буков, на С начинается, и не C# )

Для корпоратива и програм через которые идут деньги есть Java SE и Java EE. Под зондом еще можно .NET, и то, если совести нет )

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

не перегибай. в GTK примере полный расклад с конструкторами и обработчиками, а в QT примере, только заглавие класса и все. Да, на Сишной реализации объектной модели нужно несколько больше писать, не спорю. Но твой пример некорректен.

Помимо этого, вопросы был про тулкиты, а ты акцентируешь на языки. Твой пример с GTK виджетом показывает, как реализуется наследование класса в контексте gobject. Для простых приложений нет жесткой необходимости реализовывать наследование. Можно просто брать виджет и ваять визуальную часть.

Deleted
()

>в виде решения какой-либо простой распространенной задачки — ну там, из SQLite-базы вычитать, в сетке отобразить

вот именно с этим есть некоторые неудобства в GTK. Есть виджет GtkTreeView, но он не удобен для таких манипуляций, хотя акромя его пока что нет ничего. Хотя в GTK 3.0 уже наваяли какой-то виджет для этих целей, но я про него ничего не могу сказать, не пользовал до селе.

Вообще, на GTK небольшие графические приложения пишутся очень просто и таких софтин тьма. На выбор GTK потталкивают очень хорошие бинды к питону и написание софта не сводится к познаниям декларации класса на Си. Питон уже объектный язык. Попробуйте сваять. Вот примеры из документации http://www.pygtk.org/pygtk2tutorial/index.html

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

Похвально что такое хотябы есть. Но вы сами понимаете... )))

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

Макс Шлее - Qt4.5, стр. 672. «Классы SQL-моделей для интервью (третий уровень)». Вобщем там про класс QSqlTableModel

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

Питон по большей части интересует.

Есть у меня нокия N900, так вот — надо иногда собственного разлива тулзовинки для себя же писать. Есть питон, есть pygtk и есть pyqt. Собственно интересно, у кого кривая обучения глаже и код получается читабельнее и малошаманистее.

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