metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-03-24 10:06 pm

Qt

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

Дельфи умер, потому что паскаль, гопнет умирает, потому что его заполонили индусы и wpf, все внимание хипстеров от программирования привлечено к веб-интерфейсам на js, а олдскульные гуру ненавидят пользовательский интерфейс и делают только бэк-енды и бизнес-логику.

Из условно-пригодного осталось Qt, но что будет с ним после того, как его купила нокиа, а затем продала дигии - неясно.
Но таки альтернативы все равно нет, решил попытаться сделать прототип софтины, аналогичной той, что ранее сделана на дельфи и на гопнете (более-менее универсальный опердень-клиент, использующий сгенерированные кодогенератором метаданные для GUI и взаимодействия с бэк-ендом в виде БД или RESTful апи к серверу приложений ).
Пока идет туговато, разные типичные вещи, типа "грид с данными", которые в дельфи сделаны идеально, в гопнете как-то "так", тут приходится пока мудрить вручную, изучая, как это сделано в стандартных классах и примерах.

[identity profile] bydlorus.livejournal.com 2013-03-24 07:11 pm (UTC)(link)
А что, к Qt сделали биндинги на кложуре?

[identity profile] metaclass.livejournal.com 2013-03-24 07:19 pm (UTC)(link)
Нет, я ж на крестиках пишу.

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

(no subject)

[identity profile] permea-kra.livejournal.com - 2013-03-24 20:33 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-24 20:55 (UTC) - Expand

(no subject)

[identity profile] maxdz.livejournal.com - 2013-03-24 22:27 (UTC) - Expand

[identity profile] sergiej.livejournal.com 2013-03-24 07:25 pm (UTC)(link)
Так а почему не Qt?

[identity profile] metaclass.livejournal.com 2013-03-24 07:35 pm (UTC)(link)
Ну я на нем и делаю сейчас.
Что-то вещей хотя бы уровня дельфей 10-летней давности нет в принципе.

(no subject)

[identity profile] vp.livejournal.com - 2013-03-24 19:58 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-24 20:21 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2013-03-24 20:29 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-24 20:37 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2013-03-24 20:41 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-24 20:29 (UTC) - Expand

(no subject)

[identity profile] maxdz.livejournal.com - 2013-03-24 22:29 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-25 06:43 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2013-03-24 20:16 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-24 20:26 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2013-03-24 20:29 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-24 20:51 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2013-03-25 09:46 (UTC) - Expand

[identity profile] vp.livejournal.com 2013-03-24 07:34 pm (UTC)(link)
Я думаю, что текущее состояние дел в Qt заморозится, то есть сильного развития не будет.

А по поводу генерации - это единственный способ на Qt делать какие-то гуи вещи с дата гридами, ибо иначе там сложно.

[identity profile] metaclass.livejournal.com 2013-03-24 07:39 pm (UTC)(link)
Я так понимаю, надо сделать модель с встроенным хранилищем для метаданных.
И грузить эти метаданные из сгенерированного конфига (типа того что мы в дотнет-версии используем), чтобы не генерировать еще и С++ код.

У них там есть QSqlQueryModel и QRelationTableModel но это 1% от нужной функциональности.

[identity profile] hshhhhh.livejournal.com 2013-03-24 08:01 pm (UTC)(link)
Недавно ж совсем (в течении месяца) релиз был

[identity profile] lord-baskervil.livejournal.com 2013-03-24 08:15 pm (UTC)(link)
>текущее состояние дел в Qt заморозится,
Эм, что? Что значит заморозится и, что значит текущее состояние дел?

(no subject)

[identity profile] vp.livejournal.com - 2013-03-24 20:28 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2013-03-24 20:39 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-24 20:52 (UTC) - Expand

[identity profile] nicka-startcev.livejournal.com 2013-03-24 07:37 pm (UTC)(link)
а что хужее, Qt или gtk?

[identity profile] metaclass.livejournal.com 2013-03-24 07:39 pm (UTC)(link)
Софт под винду лучше делать на Qt, по крайней мере это есть из коробки.

(no subject)

[identity profile] gds.livejournal.com - 2013-03-24 19:43 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-24 20:04 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-24 20:06 (UTC) - Expand

[identity profile] norguhtar.livejournal.com 2013-03-25 03:09 am (UTC)(link)
gtk хуже. С документацией пиздец и с точки зрения целостности страашный.

[identity profile] justy-tylor.livejournal.com 2013-03-24 07:47 pm (UTC)(link)
Из нативных решений wxWidgets гуманнее. Там нет тыщи классов QAllYouEverWanted, но нет и последующих разочарований.

[identity profile] lord-baskervil.livejournal.com 2013-03-24 07:57 pm (UTC)(link)
Чем лучше?
inb4 чем Qt

(no subject)

[identity profile] justy-tylor.livejournal.com - 2013-03-24 20:50 (UTC) - Expand

(no subject)

[identity profile] norguhtar.livejournal.com - 2013-03-25 03:11 (UTC) - Expand

[identity profile] hshhhhh.livejournal.com 2013-03-24 08:01 pm (UTC)(link)
вазьмите gtk и страдайте как настоящий мужик уже.

[identity profile] thedeemon.livejournal.com 2013-03-25 05:17 am (UTC)(link)
tcl/tk еще можно, то-то все будут рады :)

(no subject)

[identity profile] nivanych.livejournal.com - 2013-03-25 19:00 (UTC) - Expand

[identity profile] potan.livejournal.com 2013-03-24 08:01 pm (UTC)(link)
Энтерпразный вариант - опердень ввиде плугина к эклипсу. Можно и на Clojure...

[identity profile] metaclass.livejournal.com 2013-03-24 08:08 pm (UTC)(link)
Видел я такое, да. Rich Client Platform.
Не знаю, не люблю подстраиваться под чужие фреймворки.

[identity profile] freetiger.livejournal.com 2013-03-24 08:10 pm (UTC)(link)
Чем билдер не устраивает?

[identity profile] fas-tm.livejournal.com 2013-03-24 08:25 pm (UTC)(link)
все билдеры хороши только для простых форм.
Я практически не использую. Мне сейчас намного проще вручную нарисовать лэйауты и покидать в них виджеты. В этом случае все это дело более управляемое. мало того просто проще генерировать формы из каких то данных или моделей.

(no subject)

[identity profile] vp.livejournal.com - 2013-03-24 20:30 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-24 20:45 (UTC) - Expand

(no subject)

[identity profile] freetiger.livejournal.com - 2013-03-24 20:40 (UTC) - Expand

[identity profile] chemodax.livejournal.com 2013-03-24 08:29 pm (UTC)(link)
Я чего-то в последнее время полюбил старый-добрый WTL. Хотя конечно с гридом там наверное намучаешься, но мне к счастью не надо :)
(deleted comment)

[identity profile] thedeemon.livejournal.com 2013-03-25 05:27 am (UTC)(link)
Совсем недавно видел такое:

"Выкидываем Delphi. Попробовали XE3 64 бита - не кампелирует вообще. Два варианта, или падает компилятор, или получается незапускающийся файл. Жалко, конечно, сколько лет, ёлки, но x64 нужно. Будем переписывать, месяца четыре, судя по всему."
http://sharowarsheg.livejournal.com/140523.html

[identity profile] maxdz.livejournal.com 2013-03-24 10:26 pm (UTC)(link)
>Но таки альтернативы все равно нет

Джава или .NET/C#? Чем не альтернатива?

[identity profile] metaclass.livejournal.com 2013-03-25 06:42 am (UTC)(link)
Немного раздражает. Использовать можно, но не получается сделать идеально без каких-то излишних усилий.

[identity profile] tzirechnoy.livejournal.com 2013-03-24 10:58 pm (UTC)(link)
Дэльфи умер -- потому, что единственный вменяемый дизайнер свалил где-то между первой и второй версией, а остальные быдлокодеры дажэ работающий place manager написать ниасилили.
Замечу, что прикрутить к нему C++ -- они как раз вполне смогли. C++ в дэльфях жывёт большэ, чем по-видимому большынство современных программистов -- программируют.

Гопнет умирает потому, что MS протухла сама по себе, у всех команд внутри NIH во все дыры ещё большэ, чем в OS-community, бюрократия переплюнула саму IBM, а на того самого дизайнера не кладёт болт разве что его секретарша (за отсутствием болта).

Кстати, альтэрнатива -- wx.

Но это всё, по большому счёту, дохлое -- поскольку web и всё такое.

[identity profile] fraks-nsk.livejournal.com 2013-03-25 01:04 am (UTC)(link)
Сижу на Delphi7 и у меня ничего не умерло ;)

[identity profile] denisioru.livejournal.com 2013-03-25 04:20 am (UTC)(link)
в .net чуть более чем дофига разного рода сторонних фреймворков для гуя, никто не заставляет писать с помощью DataGrid. Используйте telerik или devexpress, они очень ок.

[identity profile] berezovsky.livejournal.com 2013-03-25 04:33 am (UTC)(link)
инфраджистикс ещё когда-то был

(no subject)

[identity profile] denisioru.livejournal.com - 2013-03-25 04:34 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-25 06:45 (UTC) - Expand

(no subject)

[identity profile] maxdz.livejournal.com - 2013-03-25 06:49 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-25 07:17 (UTC) - Expand

(no subject)

[identity profile] teewoon.livejournal.com - 2013-03-25 20:10 (UTC) - Expand

(no subject)

(Anonymous) - 2013-03-25 07:04 (UTC) - Expand

[identity profile] raydac.livejournal.com 2013-03-25 07:01 am (UTC)(link)
UI можно на HTML в принципе делать, юзая как UI среду просто броузеры

[identity profile] fas-tm.livejournal.com 2013-03-25 08:41 am (UTC)(link)
в данном случае нельзя категорически. сложные формы не сделаешь на всяких html UI.
во вторых я категорически против этого гейства:
- html язык разметки текста. к rich-gui не приспособлен никак. то что есть сегодня - натягивание презерватива на кактус.
- таскать за собой тот же webkit или что еще хуже использовать системный движок браузера совсем не улыбается.
- будет тормозной и кривой способ взаимождействия основного кода с кодом gui.

Уж лучше .NET, честно.
Edited 2013-03-25 08:42 (UTC)

(no subject)

[identity profile] raydac.livejournal.com - 2013-03-25 09:52 (UTC) - Expand

[identity profile] vit-r.livejournal.com 2013-03-25 12:00 pm (UTC)(link)
Всё хожу около. Если нужно, или Tk, или веб через localhost

[identity profile] ext_1684112 (from livejournal.com) 2013-03-25 04:37 pm (UTC)(link)
Что скажете про Swing?

[identity profile] metaclass.livejournal.com 2013-03-25 04:48 pm (UTC)(link)
Сначала Qt, я не потерял еще надежды сделать нативно компилируемое десктопное приложение :)

(no subject)

[identity profile] ext_1684112 - 2013-03-25 16:53 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-03-25 17:48 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2013-03-25 17:02 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-25 17:26 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2013-03-26 13:33 (UTC) - Expand

(no subject)

[identity profile] fas-tm.livejournal.com - 2013-03-26 13:45 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2013-03-26 14:27 (UTC) - Expand

(no subject)

[identity profile] psilogic.livejournal.com - 2013-03-28 06:25 (UTC) - Expand

[identity profile] psilogic.livejournal.com 2013-03-27 09:25 pm (UTC)(link)
я был вынужден отнаследовать от QAbstractItemModel и написать свою модель для дерева, стандартная страшно тормозила на обычной отрисовке (10 колонок, часть ячеек с пиктограммами)

[identity profile] metaclass.livejournal.com 2013-03-27 09:31 pm (UTC)(link)
Я так и буду делать, у меня специфические требования к внутренностям модели и структуре данных, которую она отражает.

(no subject)

[identity profile] psilogic.livejournal.com - 2013-03-27 21:41 (UTC) - Expand