Всем привет. Где-то лет 10 назад я забросил программирование на С++ под Windows, в том числе и GUI, и программирую под Linux в области сервисного backend.
Когда я бросал, GUI под Windows писали на WinAPI, QT, ATL/WTL и фрейворки над ними, MFC и феймворки над ними, тогда стала появляться мода писать на C#, а функционал бизнес-логики и вычисления выносить через COM.
Вопрос, а как обстоят дела в 2021 году? Вопрос исключительно праздный и практической цели пока не имеет.
Здравствуйте, Bjorn Skalpe, Вы писали:
BS>Всем привет. Где-то лет 10 назад я забросил программирование на С++ под Windows, в том числе и GUI, и программирую под Linux в области сервисного backend. BS>Когда я бросал, GUI под Windows писали на WinAPI, QT, ATL/WTL и фрейворки над ними, MFC и феймворки над ними, тогда стала появляться мода писать на C#, а функционал бизнес-логики и вычисления выносить через COM.
BS>Вопрос, а как обстоят дела в 2021 году? Вопрос исключительно праздный и практической цели пока не имеет.
BS>Вопрос, а как обстоят дела в 2021 году? Вопрос исключительно праздный и практической цели пока не имеет.
Microsoft рекомендует C++\winrt
А если нужно поддерживать чето древнее, то winapi и com все еще в ходу.
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, gandjustas, Вы писали:
G>>Microsoft рекомендует C++\winrt K>Да ладно? А чего они как переобулись? Вроде двигали всю жизнь C#.
Его и продолжают двигать.
Здравствуйте, Nuzhny, Вы писали:
N>Из моего болота видно, как постепенно Qt вытесняет всё, даже C#. Но это для ресурсоёмких и кроссплатформенных приложений.
у opencv есть классы позволяющие сделать простой GUI
Здравствуйте, Nuzhny, Вы писали:
BS>>Вопрос, а как обстоят дела в 2021 году? Вопрос исключительно праздный и практической цели пока не имеет.
N>Из моего болота видно, как постепенно Qt вытесняет всё, даже C#. Но это для ресурсоёмких и кроссплатформенных приложений.
Честно говоря, GUI на Qt писать — то ещё удовольствие. Вот в Дельфях/С++ Билдере было самое классное, и с тех пор всё только хуже и хуже делают
Здравствуйте, Marty, Вы писали:
M>Честно говоря, GUI на Qt писать — то ещё удовольствие. Вот в Дельфях/С++ Билдере было самое классное, и с тех пор всё только хуже и хуже делают
Здравствуйте, Marty, Вы писали:
BS>>>Вопрос, а как обстоят дела в 2021 году? Вопрос исключительно праздный и практической цели пока не имеет. N>>Из моего болота видно, как постепенно Qt вытесняет всё, даже C#. Но это для ресурсоёмких и кроссплатформенных приложений.
M>Честно говоря, GUI на Qt писать — то ещё удовольствие. Вот в Дельфях/С++ Билдере было самое классное, и с тех пор всё только хуже и хуже делают
А поподробнее можно? Qt Designer с Layout, palette, qt stylesheet, по моему мнению просто в другой вселенной(на голову выше), единственное что было лучше в Билдере и Дельфи это работа с БД из дизайнера, но честно говоря, делать подключение к БД в дизайнере это странно. А, ну и плюс было множество сторонних контролов, но тут вопрос в их качестве и актуальности, а сейчас можно и на https://marketplace.qt.io/ поискать недостающее.
M>>Честно говоря, GUI на Qt писать — то ещё удовольствие. Вот в Дельфях/С++ Билдере было самое классное, и с тех пор всё только хуже и хуже делают
I>А поподробнее можно? Qt Designer с Layout, palette, qt stylesheet, по моему мнению просто в другой вселенной(на голову выше), единственное что было лучше в Билдере и Дельфи это работа с БД из дизайнера, но честно говоря, делать подключение к БД в дизайнере это странно. А, ну и плюс было множество сторонних контролов, но тут вопрос в их качестве и актуальности, а сейчас можно и на https://marketplace.qt.io/ поискать недостающее.
Layout'ы вроде бы штука полезная, когда надо сделать растягивающуюся форму. Но на самом деле это не всегда и нужно. Во-вторых, я задолбался с ними воевать. Еще в дизайнере контрол кидаеш на лайоут, он по порядку последним добавляется, и нумеруется соответственно, а на форме — первым.
Что такое palette — хз.
qt stylesheet — в большинстве случаев он не нужен — хочется просто форму, максимально не отличающуюся от родных в данной ОС.
Связывание контролов с обработчиками событий — то так себе. Причем в вижуалке не всё работает, а то, что работает, тоже подглючивает. Qt Creator — ну, с формами там худо бедно можно работать, но остальное — особенно отладка...
Опять же, моки, уики — в дельфях/билдере такого просто нет. А тут сразу надо разбираться.
Сраная магия сигналов и слотов — отдельное приключение.
В общем, такое, чтобы за полчаса накидать рабочий прототип какого-то приложения или отдельного диалога — не вариант. Я быстрее ручками на WTL напишу, и всё растягиваться будет, как надо, в том числе.
Хотя, конечно, для кроссплатформенного гуя Qt в чем-то неплох. Хотя мне больше wxWidgets зашел
Здравствуйте, Marty, Вы писали:
M>Layout'ы вроде бы штука полезная, когда надо сделать растягивающуюся форму. Но на самом деле это не всегда и нужно. Во-вторых, я задолбался с ними воевать. Еще в дизайнере контрол кидаеш на лайоут, он по порядку последним добавляется, и нумеруется соответственно, а на форме — первым.
Я одно время много на Делфи писал, а потом на Билдере. И меня раздражал этот визуальный стиль программирования, где надо заходить в кучу окошек и выставлять кучу пропертей. И очень на этом фоне зашли QWidget'ы, где всё описывается кодом, и всё в одном месте, и всё можно посмотреть глазами. Прямо таки бальзам на сердце.
Здравствуйте, Marty, Вы писали:
M>>>Честно говоря, GUI на Qt писать — то ещё удовольствие. Вот в Дельфях/С++ Билдере было самое классное, и с тех пор всё только хуже и хуже делают
I>>А поподробнее можно? Qt Designer с Layout, palette, qt stylesheet, по моему мнению просто в другой вселенной(на голову выше), единственное что было лучше в Билдере и Дельфи это работа с БД из дизайнера, но честно говоря, делать подключение к БД в дизайнере это странно. А, ну и плюс было множество сторонних контролов, но тут вопрос в их качестве и актуальности, а сейчас можно и на https://marketplace.qt.io/ поискать недостающее.
M>Layout'ы вроде бы штука полезная, когда надо сделать растягивающуюся форму. Но на самом деле это не всегда и нужно.
А когда не нужно делать растягивающуюся форму? M>Во-вторых, я задолбался с ними воевать. Еще в дизайнере контрол кидаеш на лайоут, он по порядку последним добавляется, и нумеруется соответственно, а на форме — первым.
Я правильно понял что претензия к автоименнованию контролов? Так то я на форме стараюсь не держать button_1, button_2 и так далее, а давать нормальные названия, а если уж и оставляю, то этот label_18 мне вообще не нужен для логики.
M>Что такое palette — хз.
Палитра, тоже для оформления стиля приложения
M>qt stylesheet — в большинстве случаев он не нужен — хочется просто форму, максимально не отличающуюся от родных в данной ОС.
Тебе можно сказать повезло.
M>Связывание контролов с обработчиками событий — то так себе. Причем в вижуалке не всё работает, а то, что работает, тоже подглючивает.
А пример можно? Но я предпочитаю всё это в С++ коде уже делать, в явном виде, без Auto-Connect в setupUi .
M>Qt Creator — ну, с формами там худо бедно можно работать, но остальное — особенно отладка...
Не MSVC это да, да и к самому редактору у меня есть претензии.
M>Опять же, моки, уики — в дельфях/билдере такого просто нет. А тут сразу надо разбираться.
Зачем в этом разбираться? Ошибку конечно можно сделать, если сам начинаешь писать формы, классы, а не через визард добавляешь новые файлы, но тут уже да, нужно хоть поверхностно знать устройство.
M>Сраная магия сигналов и слотов — отдельное приключение.
Где там магия то?
M>В общем, такое, чтобы за полчаса накидать рабочий прототип какого-то приложения или отдельного диалога — не вариант. Я быстрее ручками на WTL напишу, и всё растягиваться будет, как надо, в том числе.
Я на wtl наверное и за день ничего не накидаю, так как его не знаю. А вот быстро сделать форму в дизайнере проверить её по Ctrl+R что всё расстягивается, и правильно отображается можно, а потом уже логику на С++ написать дело не сложное.
M>Хотя, конечно, для кроссплатформенного гуя Qt в чем-то неплох. Хотя мне больше wxWidgets зашел
Не пробовал, не могу ничего сказать, на там вроде ничего кроме виджетов и нет.
Здравствуйте, Nuzhny, Вы писали:
N>Я одно время много на Делфи писал, а потом на Билдере. И меня раздражал этот визуальный стиль программирования, где надо заходить в кучу окошек и выставлять кучу пропертей. И очень на этом фоне зашли QWidget'ы, где всё описывается кодом, и всё в одном месте, и всё можно посмотреть глазами. Прямо таки бальзам на сердце.
То есть QML вы не заметили?
Это как раз представитель того подхода, который средний между ними и который становится основным в современном GUI — максимум таки стараются сложить на язык описания, который одновременно
1) машинночитаемый для генерации объектов и их связей,
2) машинночитаемый и машинноизменяемый для визуального редактора,
3) человекочитаемый для проверки, контроля и корректировки, где машина не справилась.
И к этому идут все, хоть и по-разному (WPF, Android...)
Здравствуйте, netch80, Вы писали:
N>То есть QML вы не заметили?
Заметил, но уже ушёл из этой области программирования. Я ещё делал GUI на чистом WinAPI, делал свои контролы на DirectDraw для вывода поверх видео, потом делал свои контролы на Direct3D с этой же целью (это для системы видеонаблюдения, где на одном экране десятки видеоканалов, нужны были быстрые контролы, видео выводилось на surface). Вот это всё меня и подкосило, тупо надоело.
Здравствуйте, Marty, Вы писали:
M>Layout'ы вроде бы штука полезная, когда надо сделать растягивающуюся форму.
А я в свое время в WinForms наоборот пришел к лэйаутам с авторазмерами.
M>Но на самом деле это не всегда и нужно.
Там, где не нужно, проблем обычно нет.
M>Во-вторых, я задолбался с ними воевать.
Та же фигня
Здравствуйте, netch80, Вы писали:
N>То есть QML вы не заметили? N>Это как раз представитель того подхода, который средний между ними и который становится основным в современном GUI — максимум таки стараются сложить на язык описания, который одновременно N>2) машинночитаемый и машинноизменяемый для визуального редактора,
Вот это к сожаление, не про QML, ни одной формы на qml не видел которую можно в дизайнере увидеть, не то что даже править, там же чуть что выделяем компонент и всё, дизайнер не справляется с отображением.
Здравствуйте, Nuzhny, Вы писали:
N> Я одно время много на Делфи писал, а потом на Билдере. И меня раздражал этот визуальный стиль программирования, где надо заходить в кучу окошек и выставлять кучу пропертей. И очень на этом фоне зашли QWidget'ы, где всё описывается кодом, и всё в одном месте, и всё можно посмотреть глазами. Прямо таки бальзам на сердце.