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

Qt

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

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

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

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

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

[identity profile] norguhtar.livejournal.com 2013-03-25 03:11 am (UTC)(link)
Ага в итоге он выглядит инопланетянским даже в linux. Чего стоит отсутствие поддержки вставки посредством средней кнопкой мыши. Хотя и в gtk и в qt работает без всяких проблем.

[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)
инфраджистикс ещё когда-то был

[identity profile] denisioru.livejournal.com 2013-03-25 04:34 am (UTC)(link)
Он скатился в говно. Он изначально был не очень удобен в плане расширяемости, а потом стал вообще полным адом.

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

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

[identity profile] metaclass.livejournal.com 2013-03-25 06:43 am (UTC)(link)
Пробовал. Ад заборов, коровников и индусов. Либо тупо садится и писать свои контролы.

[identity profile] metaclass.livejournal.com 2013-03-25 06:45 am (UTC)(link)
Пишем. Огорчают.
Вот например, как отключить wrap-around при движении стрелками по DevExpress гриду?
Проблему с выходом по табу вроде уже решили, надо спросить будет у нашего товарища, который гридами ведает.

[identity profile] maxdz.livejournal.com 2013-03-25 06:49 am (UTC)(link)
>Вот например, как отключить wrap-around при движении стрелками по DevExpress гриду?

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

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

(Anonymous) 2013-03-25 07:04 am (UTC)(link)
Ну вот приезжай на девкон, потеребишь разработчиков вживую :)

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

[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)

[identity profile] gineer.livejournal.com 2013-03-25 09:46 am (UTC)(link)
Делал как-то свой грид-таблицу на wxWidgets
потому что там ничего такого вообще нет,
а то что есть, не расширяемо.
Правда никаких таких MVC не получилось, да и не особо нужно было.

[identity profile] raydac.livejournal.com 2013-03-25 09:52 am (UTC)(link)
я бы не стал так категорично, html+js сейчас вполне на уровне (тот же smartgwt http://www.smartclient.com/smartgwt/showcase/), а если хочется накрутить что то слигком крутое то скорее всего юзер этого не освоит

[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, я не потерял еще надежды сделать нативно компилируемое десктопное приложение :)

[identity profile] ext_1684112 (from livejournal.com) 2013-03-25 04:53 pm (UTC)(link)
Я не о том. Хотелось бы вообще услышать ваше мнение о Swing'е.

[identity profile] permea-kra.livejournal.com 2013-03-25 05:02 pm (UTC)(link)
Ээээ....
Только winapi, только хардкор.

Кстати, а что неправильного с использованием нативного winapi ?

[identity profile] fas-tm.livejournal.com 2013-03-25 05:26 pm (UTC)(link)
то что прийдется изобретать огромное количество велосипедов.
простейший пример. инициализация плагинов, вытаскивание системных путей для временных файлов чтение конфига все относительно текущего положения приложения итд. Ладно, у меня они просто написанны давно в виде хелепров типа GetModuleFileName* + кучка методов для вытаскивания расширения/имени файла/абсолютного пути. Я просто сейчас не осознаю этого уже, но поверьте на это было затрачено много времени.
в QtCore мы имеем это сразу из коробки к примеру

QSettings config(QDir::toNativeSeparators(qApp->applicationDirPath() +
QDir::separator() + "appcfg.ini"),
QSettings::IniFormat);

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



Edited 2013-03-25 17:26 (UTC)

[identity profile] metaclass.livejournal.com 2013-03-25 05:48 pm (UTC)(link)
Я его руками не трогал пока.

Page 3 of 4