|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
На примере Qt, но его тут знать не обязательно. Вот сигнатура, упрощённо: Код: plaintext 1.
Не обращайте внимание, что сигналы и слоты типа "const char *" это устаревшее, но не суть. Мы наследуемся от QObject, вызываем этот метод. Далее объект "sender" генерирует сигнал "signal" и для "this" вызывается "method". Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :) Я думаю, что там где-то кодогенерация с виртуальными функциями. Ну или макрос Q_OBJECT определяет виртуальную функцию, которая возвращает this. Вроде по другому задачу не решить? Я так просто порассуждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 17:25 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :) Как это не передается. Это же не статический метод, значит this у него есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 17:38 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Прочитай основы ОО в С++: каждый нестатический метод класса имеет скрытый параметр. И это - тадам! - this. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 17:41 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky petrav Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :) Как это не передается. Это же не статический метод, значит this у него есть. Да, только в connect() this будет указывать на QObject, а метод-слот нужно будет вызвать в наследнике. И наследников может быть несколько: QObject -> A -> B. Множественное наследование тоже не запрещено. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:04 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, а исходники Qt почитать и, заодно, посмотреть что именно moc генерит что мешает? Пройтись дебаггером, в конце концов? )) там муторно конечно, но разобраться можно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:09 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, Метод который вызывается виртуальный. Дальше все автоматически происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:10 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav Anatoly Moskovsky пропущено... Как это не передается. Это же не статический метод, значит this у него есть. Да, только в connect() this будет указывать на QObject ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:12 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky petrav, Метод который вызывается виртуальный. Дальше все автоматически происходит. Метод-слот, который вызывается, не виртуальный. И в QObject его вообще нет ни в каком виде. На то он и слот... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:13 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, морочишь людям головы. Код: plaintext 1. 2.
если в функции три параметра то третий это функтор и туда будут приходить сигналы. но никак не в объект в котором ты вызываешь connect ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:29 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
OoCc petrav, морочишь людям головы. Код: plaintext 1. 2.
если в функции три параметра то третий это функтор и туда будут приходить сигналы. но никак не в объект в котором ты вызываешь connect Это новшество Qt 5. Если вы посмотрите на сигнатуру в первом посте, то поймёте, что вопрос был про функцию connect() из Qt 4. PS: Да, я не пользуюсь этой устаревшей функцией, всё только compile time, без char * хранящий инфу о слоте. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:33 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav OoCc petrav, морочишь людям головы. Код: plaintext 1. 2.
если в функции три параметра то третий это функтор и туда будут приходить сигналы. но никак не в объект в котором ты вызываешь connect Это новшество Qt 5. Если вы посмотрите на сигнатуру в первом посте, то поймёте, что вопрос был про функцию connect() из Qt 4. PS: Да, я не пользуюсь этой устаревшей функцией, всё только compile time, без char * хранящий инфу о слоте. В таком случае Qt генерирует что то. Метод же обьявляется как слот. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 18:45 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Кстати, а какие у нас вообще есть честные C++ способы передать this наследника в базовый класс (кроме виртуальных функций)? - Через "странно рекурсивное наследование" передать в базовый класс тип (класс) наследника. И в базовом классе преобразовать this базового класса. - Паттерн Command. Самая простая реализация std::function + std::bind. - Передать в базовый класс функтор (лямбду) в котором упакованы this (ну и метод). Перечисленное во многом пересекается, в терминологии могу ошибаться. Что-то забыл? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 21:24 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, Опять же нужен практический код и вопрос. В общем случае базовый класс не должен знать о наследнике. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 10:00 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav Кстати, а какие у нас вообще есть честные C++ способы передать this наследника в базовый класс (кроме виртуальных функций)?... ОО метода это от жизни... И посему интересн пример из жизни, где яйца должны знать форму лотка в котором они лежат. Это типо уши у них что ли появились или ручки для ощупывания? выходит как то так... (круглый) ЗЫ Для наследования - можно сказать по другому: - сущность зверь знает кем она может быть в будущем? Типо через год буду зайцем... ???? ЗЫ ЗЫ По поводу слотов в QT - там были глюки лет пять назад. Надо очень аккуратно коннект и дисконнект делать. - сохранять форму вызова - делать дисконнект в обратной последовательности ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 13:06 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
kolobok0 По поводу слотов в QT - там были глюки лет пять назад. Надо очень аккуратно коннект и дисконнект делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 21:01 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
kolobok0 petrav Кстати, а какие у нас вообще есть честные C++ способы передать this наследника в базовый класс (кроме виртуальных функций)?... ОО метода это от жизни... И посему интересн пример из жизни, где яйца должны знать форму лотка в котором они лежат. Это типо уши у них что ли появились или ручки для ощупывания? Иначе GUI в ООП стиле не построишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 21:16 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav .Иначе GUI в ООП стиле не построишь. вот это поворот... ну... тут надобно пример траблов, которые вызвали трудности...а так - не о чём... накидайте пример. может я что то новое для себя узнаю... (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 23:16 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav Иначе GUI в ООП стиле не построишь. ООП это наследование, полиморфизм и инкапсуляция. Где трудности? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 05:56 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
bk0010, Вангую что утечка памяти. Но могу ошибаться. Ну а прогеры старой закалки просто аккуратно подписываются и аккуратно отписываются на события. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 05:58 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
kolobok0 petrav .Иначе GUI в ООП стиле не построишь. вот это поворот... ну... тут надобно пример траблов, которые вызвали трудности...а так - не о чём... накидайте пример. может я что то новое для себя узнаю... Я думаю, что как-то так 22195969 и работает connect() из Qt 5. Макрос "slots" уже не нужен. Представьте, что мы разработчики Qt. Нам нужно без кодогенерации вызвать из базовой библиотеки метод клиентского класса. При этом этот метод не виртуальный, и не статический, имеет заведомо неизвестное название. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 10:23 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, а сколько потоков в твоём приложении? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:26 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton petrav, а сколько потоков в твоём приложении? А к чему вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:35 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Я могу ошибаться но в моём понимании сигнально-слотная система полезна когда у тебя несколько потоков коммуницируют друг с другом. Как акторы. Или как подписчики и поставщики в системах MQ. В остальных случаях. Зачем? Ну вызови метод и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:39 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton В остальных случаях. Зачем? Ну вызови метод и все. Представим у нас есть два библиотечных класса BaseForm и PushButton. Как вы предлагаете из них вызывать метод MyForm::onMyButtonPressed() ? MyForm -- клиентский класс, наследник от BaseForm. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:46 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Я так глубоко не вижу проблему. А в чем проблема вызвать метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:49 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Я так глубоко не вижу проблему. А в чем проблема вызвать метод? :) У нас есть файл PushButton.cpp. Но мы не можем в нём подключить файл MyForm.h и просто вызвать метод MyForm::onMyButtonPressed(). А вызвать нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 11:54 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Позднее связывание? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:00 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Позднее связывание? Что именно вы имеете в виду? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:13 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton Позднее связывание? Что именно вы имеете в виду? Это когда в фазе компилляции твой код еще не знает какой из производых классов будет использован. Такая инфа появляется в рантайме. Обычное дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:27 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton petrav пропущено... Что именно вы имеете в виду? Это когда в фазе компилляции твой код еще не знает какой из производых классов будет использован. Такая инфа появляется в рантайме. Обычное дело. Вы спрашивали в чём проблема. Я вам пояснил или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:30 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton пропущено... Это когда в фазе компилляции твой код еще не знает какой из производых классов будет использован. Такая инфа появляется в рантайме. Обычное дело. Вы спрашивали в чём проблема. Я вам пояснил или нет? Нет. Не пояснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:34 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravПредставьте, что мы разработчики Qt. Нам нужно без кодогенерации вызвать из базовой библиотеки метод клиентского класса. При этом этот метод не виртуальный, и не статический, имеет заведомо неизвестное название. То есть "представьте, что мы криворукие разработчики, спроектировавшие кривую библиотеку" и теперь нам надо героически преодолеть последствия собственной криворукости. petravПредставим у нас есть два библиотечных класса BaseForm и PushButton. Как вы предлагаете из них вызывать метод MyForm::onMyButtonPressed() ? Учиться у классиков. Борланды проделали это дважды: в Turbo Vision через наследование и в VCL через указатели на метод класса. Да, в последнем случае им пришлось расширить С++ в котором тогда не было функторов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:36 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
(раскачиваясь в кресле) Мне почему-то вспоминаются некие UI-ные библиотечки. У них была концепция шины сообщений. И подписчиков. Для модели MVP. И вобщем когда модель меняется - она посылает сообщение в шину типа "изменилась карточка абонента" и все UI ные компоненты которые в состояни среагировать на это - обновляют свой вид. Это было удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:43 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton petrav пропущено... Вы спрашивали в чём проблема. Я вам пояснил или нет? Нет. Не пояснил. Тогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed(). Но это не виртуальный метод. И не статический. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:43 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton пропущено... Нет. Не пояснил. Тогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed(). Но это не виртуальный метод. И не статический. А почему нельзя виртуальный? Это обидно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:45 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravТогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed(). Ну ёлы-палы, выйдите уже за пределы кутвари, откройте для себя VCL или хотя бы "ок гугль, указатель на метод класса в С++". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 12:51 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravТогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed(). Ну ёлы-палы, выйдите уже за пределы кутвари, откройте для себя VCL или хотя бы "ок гугль, указатель на метод класса в С++". Меня поражает ваша манера с понтом писать бессмысленные сообщения. Я знаю про указатели на метод класса. И проблему этого топика могу решить тремя разными способами. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 13:13 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Джентльмены! Давайте снизим градус слов. Не надо нам всяких *тварей. Мы ведь и так нормально общаемся. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 13:18 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravЯ знаю про указатели на метод класса. И проблему этого топика могу решить тремя разными способами. То есть ты создал тему с проблемой для которой знаешь три решения. Чисто на поржать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 13:20 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
maytonМы ведь и так нормально общаемся. Нет, аффтар над нами просто прикалывается. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 13:21 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Я не против программирования сигналов и слотов. Но мне интересен strong justification их использования. Тоесть должна быть некая совокупность условий которая дает этому неоспоримое преимущество перед другими методами. И не хочется быть комсомольцами которые часто пишут "зачем просто когда можно сложно". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 13:26 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav ...Я думаю, что как-то так ... Вы как-то меня не услышали совсем. Я просил привести пример Ваших проблем построения "GUI в ООП стиле" озвучьте пожалуйста. Ну типо Вы не можете сделать то и то то... а Вы, как в том анекдоте с китайцами и паролем от Вашингтона - сигналы да сигналы... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 14:43 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton Я так глубоко не вижу проблему. А в чем проблема вызвать метод? :) У нас есть файл PushButton.cpp. Но мы не можем в нём подключить файл MyForm.h и просто вызвать метод MyForm::onMyButtonPressed(). А вызвать нужно. Это не про ООП. Вы ошиблись. По прежнему ждем код и пояснения проблемы. Тут половина не поняла. Вторая половина решила что вы прикалывыетесь. Я вангую что вы разрезали ГУИ на две части "по живому". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 15:26 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
А мне кажется что тема - еще одно мета-программирование на С++. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 15:29 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton А мне кажется что тема - еще одно мета-программирование на С++. Полиморфизм в наследовании отсутствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 15:35 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Сама по себе идея мета-программизма привлекательна. Под .net создавали экспериментальный язык Nemerle где можно создавать свои синтаксические конструкции. Но мне кажется что для "читающего код" это должно быть со стороны как "страшное колдунство". В вырожденном случае ты пишешь в исходнике make_me_feel() и на выходе вдруг появляется готовая программа где все работает но как она чьорт возьми появилась непонятно и главное непонятно как ее фиксить развивать и поддерживаеть. Кто там в топике писал про "хрупкое поделие которое работает только у автора...." ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 15:43 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton А мне кажется что тема - еще одно мета-программирование на С++. Да, вы угадали. Я пишу надстройку над connect() из Qt 5 (строго типизированный вариант). И просто решил пообсуждать как бы был реализован сам connect() из Qt. Для пятой версии привёл три варианта решения. Для четвёртой очевидно там кодогенератор решает проблемы языка. И просто спросил нет ли других способов? И всё, у меня тут проблем нет. Шаблонам планово накручивается пятый этаж. PS: Для этой проблемы Борланд действительно расширял С++. А Майкрософт в MFC создал жутко дибильную фигню под названием message map. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 15:58 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
А ну ОК. Тогда у меня вопросов нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:01 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, >Майкрософт в MFC создал жутко дибильную фигню = ну вы вспомнили 2010 год)) Через 3 года и ваш код назовут дебильным. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:15 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
А что щас MS предлагает в части формо-шлёпства? Если исключить дотнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:17 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton А что щас MS предлагает в части формо-шлёпства? Если исключить дотнет. Уже лет 10 как .Net. Срочно делает кроссплатформ .Net Core Но там пока нет ничего для формошлепства. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:28 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton А что щас MS предлагает в части формо-шлёпства? Если исключить дотнет. Уже лет 10 как .Net. Срочно делает кроссплатформ .Net Core Но там пока нет ничего для формошлепства. Переводя на наш язык - ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:30 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, Есть еще WPF, типа <StackPanel Orientation="Vertical"> <TextBox /> <TextBlock /> </StackPanel> Но мне лично не нравится декларативно) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:36 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, > Переводя на наш язык - ничего. Это как сказать - каждые 5 лет новая парадигма - формошлепство есть. Больше критерий ты не спрашивал) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:38 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
А вспомнил. Ксамл. Мы на нем собирались биллинг делать. Давно еще. Я тогда в гос-конторе работал. Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть. Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки! Сдался тебе этот кю-ти со слотами прости господи. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:46 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, Компания на С++ пишет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:49 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, Он сделал акцент не на формошлепстве а на карте или системе сообщений. Строит свою систему сообщений и событий. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:50 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, Ну и, спрашивать он стесняется, а по факту пытается Qt GUI отделить полностью от своих сишных прогеров. Типо морда отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:52 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, Прогер СЕМЬ делает почти тоже самое что и он. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:53 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton, Компания на С++ пишет. Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++. Это если геймдевом заниматься. Да и то там в последнее время - там тоже идет пересмотр стека технлогий. Ну да ладно. Раз фирма веников не вяжет - то дай то бох. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:55 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Он сделал акцент не на формошлепстве а на карте или системе сообщений. Строит свою систему сообщений и событий. Ну это дело вообще не этом пишут. D-Bus по идее должен быть в основе. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:56 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton petrav mayton, Компания на С++ пишет. Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++. Это если геймдевом заниматься. Да и то там в последнее время - там тоже идет пересмотр стека технлогий. Ну да ладно. Раз фирма веников не вяжет - то дай то бох. А на чём GUI пишут по Линукс? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 16:59 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravДля этой проблемы Борланд действительно расширял С++. А потом - хопа! - это вошло в его стандарт в виде std::function. Но престарелые библиотеки всё ещё пускают поезда под откос. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:13 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
У нас где-то был форум. Где мы брали наугад штук 10 UI приложений и смотрели под капотом на чем они реализованы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:18 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravДля этой проблемы Борланд действительно расширял С++. А потом - хопа! - это вошло в его стандарт в виде std::function. Но престарелые библиотеки всё ещё пускают поезда под откос. Что-то я не припоминаю, что бы из Билдера куда-то что-то вошло, особенно в виде std::function. Вот такой код на Борланде и сейчас не соответствует идее С++: Код: plaintext 1.
А "престарелая" Qt поддерживает кучу фишек из С++ 17. В том числе connect() поддерживает лямбды. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:36 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp mayton, Он сделал акцент не на формошлепстве а на карте или системе сообщений. Строит свою систему сообщений и событий. Ну это дело вообще не этом пишут. D-Bus по идее должен быть в основе. Мне кажется сама идея отделить кнопку от формы наследника порочной. А не карта сообщений))) Это же ТС вспомнил про карту сообщений от MS. "Не отделять кнопку и не нужна карта" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:36 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravВот такой код на Борланде и сейчас не соответствует идее С++: Да ну? А если объявить OnClick как std::function(void(TObject*)> и присваивать через std::bind?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:46 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravВот такой код на Борланде и сейчас не соответствует идее С++: Да ну? А если объявить OnClick как std::function(void(TObject*)> и присваивать через std::bind?.. Единственное что тут общего — это идея упаковать в вызываемую сущность this и адрес метода. Но разве это изобретение Борланда? Это можно было делать и без него: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А синтаксически идея Борланда совершенно не похожа на C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:07 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravА синтаксически идея Борланда совершенно не похожа на C++. "Чо?" (с) Какая именно часть синтаксиса не похожа на С++: а) Точка как оператор доступа к мемберам; б) Знак равенства как оператор присваивания; в) Имя функции без скобок как её адрес; г) Неявный this-> перед именем метода. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:18 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravА синтаксически идея Борланда совершенно не похожа на C++. "Чо?" (с) Какая именно часть синтаксиса не похожа на С++: а) Точка как оператор доступа к мемберам; б) Знак равенства как оператор присваивания; в) Имя функции без скобок как её адрес; г) Неявный this-> перед именем метода. Давайте напишем на std::function и сравним. Там всё будет непохоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:21 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Я фигею. Есть событийная модель от Qt Есть от std... Function Есть от boost... signals И все непохожее и имеет отличия)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:33 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravДавайте напишем на std::function и сравним. Там всё будет непохоже. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Что, разница действительно настолько велика? Ну ничего, к какому-нибудь С++22 комитет таки сделает самоочевидный шаг от "pointer to member" к "pointer to member of object". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:38 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Хватит уже улучшать. И так по 5 лет учатся на синьоров и еще 10 лет работают и все равно ошибки делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:43 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, Ну, если в Qt или шарпе, событие в потоке отправил и голова не болит. Всё будет разрулено. То в плюсах еще попотеть надо). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:49 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
maytonИ так по 5 лет учатся на синьоров и еще 10 лет работают и все равно ошибки делают. Вот поэтому я и не заморачиваюсь на "макросы v2 aka templates" и пишу на "Си с объектами", добивая недостающее дизайном. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:49 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravДавайте напишем на std::function и сравним. Там всё будет непохоже. Что, разница действительно настолько велика? Ну ничего, к какому-нибудь С++22 комитет таки сделает самоочевидный шаг от "pointer to member" к "pointer to member of object". Лень компилировать но быстрее уж так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
И да, это совершенно не похоже на код Борланда. Это больше похоже на мой класс выше: Command. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 19:01 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Ну, если в Qt или шарпе, событие в потоке отправил и голова не болит. Всё будет разрулено. То в плюсах еще попотеть надо). Получается что язык не приспособлен для некоторых вещей. Или они делаются через страшные танталовы муки. Кстати забавный факт. Каждый хочет написать свою нетленку в виде фреймворка который аки золотая пуля бъет в цель и решает все текущие проблемы. Но что-то я не видел чтоб эта нетленка в гитхабе выходила хотя-бы на уровень выше 100 форков или столько же использований. Qt - отдельная тема. Он создавался как коммерческий продукт. Стало-быть была железная мотивация к тому чтобы сорцы хотя-бы тестами покрыть. А это немаловажно. Остальная нетленка - остается уделом гаражных поделий. Мне кажется основная беда - мышление. Оно языково-ориентировано. Подобно тому как "плотник думает топором", программист думает на С++. И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии чем технологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 19:04 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
maytonПолучается что язык не приспособлен для некоторых вещей. Или они делаются через страшные танталовы муки. При чём тут язык-то? Гордость от того, что кто-то внезапно изобрёл очередь сообщений, а потом спрятал и её и цикл её обработки под капот фреймворка, конечно, никто не будет осуждать, но и хлопать в ладоши на это "мама, я покакал" тоже как-то не тянет. И, внезапно, будет ли это называться Qt, VCL или WinForms - тоже совершенно без разницы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 19:12 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Мне кажется основная беда - мышление. Оно языково-ориентировано. Подобно тому как "плотник думает топором", программист думает на С++. И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии чем технологии. Интересно было бы увидеть какое-то приземлённое сравнение-пример. Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле. А на С++ программист начинает ипаться с языком и не может выпустить релиз. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 19:25 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Гордость от того, что кто-то внезапно изобрёл очередь сообщений, а потом спрятал и её и цикл её обработки под капот фреймворка, конечно, никто не будет осуждать, но и хлопать в ладоши на это "мама, я покакал" тоже как-то не тянет. в C++ много чего изобретать даже не надо, уже всё есть petrav Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле. А на С++ программист начинает ипаться с языком и не может выпустить релиз. можно ещё вспомнить PHP, Haskell, Python :) "мыслить в ООП стиле" - стоит весьма существенных байтов памяти и тактов процессора каждому своё ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 20:17 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть. Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки! mayton Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++. Это если геймдевом заниматься. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 20:32 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
maytonМне кажется основная беда - мышление. Оно языково-ориентировано. Подобно тому как "плотник думает топором", программист думает на С++. Есть такое дело. С одной стороны, есть фраза что опытному прогеру пофиг на чем писать. С другой стороны, паттерны решения Button.onClick = binding везде разные) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 04:24 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton Мне кажется основная беда - мышление. Оно языково-ориентировано. Подобно тому как "плотник думает топором", программист думает на С++. И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии чем технологии. Интересно было бы увидеть какое-то приземлённое сравнение-пример. Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле. А на С++ программист начинает ипаться с языком и не может выпустить релиз. Мне просто бесконечно жаль сишников которые тратят уйму времени на псевдо-архитектурные вопросы. Как-то кодовые страницы и управление памятью. А когда доходит дело до шаблонов проектирования - у сишника висит чугунная гиря на ноге. Это менеджмент памятью. Сишник постоянно думает о том как он уберет память после того как реализация шаблона будет не нужна. Это - замедляет процесс архитектурирования. Сишник как-бы боится использовать шаблон. Он боится утратить контроль. Но ребята как-же реализовывать пулы, синглтоны и внедрение зависимостей? Некоторые утилитарные вещи, такие как файловый итератор по дереву каталогов - в других языках очень легко (за считанные минуты собираются в готовые решения), в С++ - вызывают мучения интеллегенстского толка. Кажется что девелопер уже из принципа хочет это сделать так хотя на перформанс всего приложения в целом оно не влияет аж никак. Посмотрите в смежном топике мы сломали сколько копий и исписали столько бумаги просто чтобы ОБОЙТИ гребаный каталог файлов! И мы еще пол-дня думали какого размера буфер выделить. Это в 21 веке. В веке ИИ у нас осталась проблема времен первых ЭВМ. Что не могли авто-детектировать размер по потребности? Если не могли - то почему? Почему только я спрашиваю подобные вопросы. У вас у самих таких вопросов не возникает? Нет я не ругаю С++. Я спрашиваю почему сапожник без сапог? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 11:56 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton ....Я спрашиваю почему сапожник без сапог? имхо - это не сапожник без сапог, а попытка зная язык - решать задачи. хотя изначально первична ОО технология, а уж каким языком изображать - дело 25. и это кстати не только си плас плас. этим грешат практически все разрабы косящие под ОО рельсы. Куда не глянешь - везде азм в профиль, и вот такие вопросы с форума = как яйцо узнает форму лотка в котором оно существует... (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 12:39 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Нет я не ругаю С++. Я спрашиваю почему сапожник без сапог? в смежном топике вы обход делали на C... в 21м веке на C++ нет либ для обхода каталога файлов? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 12:59 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Сапожник без сапог. Я говорю не о либах а о практике применения либ. В форуме я ее (практику не увидел). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 13:05 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
maytonЯ говорю не о либах а о практике применения либ. Ну давай посмотрим... В RT11 не было библиотеки чтения каталогов. В Linux она есть и ею активно пользуются. По-моему практика налицо. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 13:17 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Сапожник без сапог. Я говорю не о либах а о практике применения либ. В форуме я ее (практику не увидел). а мне показалось, там человек учился программировать... писал с нуля своё в целом спад кол-ва mystring.h на лицо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 13:50 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton А мне кажется что тема - еще одно мета-программирование на С++. Интересно было бы узнать что такое «мета-программирование на С++»? Что вы под этим понимаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 13:55 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav mayton А мне кажется что тема - еще одно мета-программирование на С++. Интересно было бы узнать что такое «мета-программирование на С++»? Что вы под этим понимаете? Ну это когда в каком-то языке X у тебя есть косвенный способ воздействия на результирующий код. Такая себе трансформация кода ДО компилляции. Например в сях есть макро-процессор. И процессор шаблонов которые решает какой вид функции и с какими типами ему собрать. В Java есть процессор аннотаций. Тоже трансформирует исходник в другой код. Это кстати основная тема срачей в Java. Именно во что превратит код та или иная аннотация в совокупности с 1 или более чем одним процессингом этих аннотаций. В Lisp тоже есть своя тема макросов. Но до этого левла я еще не дошел. Просто вы так долго программируете на сях что не замечаете этого разделения на слои. А ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:04 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
maytonА ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли. Раз уж речь зашла, можно ли так извратиться с шаблонами, чтобы ими создавался наследник заранее неизвестного класса-параметра со всеми методами, переопределёнными по определённому шаблону? То есть, например: Код: sql 1. 2. 3. 4. 5.
И темплейт (например Implement<Base>) на выходе автоматически имеет Код: sql 1. 2. 3. 4. 5.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:12 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Просто вы так долго программируете на сях что не замечаете этого разделения на слои. А ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли. Ну вот тут момент есть: как отличить программирование на шаблонах от шаблонного мета-программирования? Если это одно и тоже, то это как-то не очень интересно и не круто выходит. :) В этом загвоздка! Я слышал два прочтения понятия мета-программирования: - Программирование не в термина данных, а в терминах данных о данных. - Программа порождает другую программу (кодогенератором или C++ шаблонами). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:18 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav - Программирование не в термина данных, а в терминах данных о данных. - Программа порождает другую программу (кодогенератором или C++ шаблонами). Я-бы различал мета-программирование и кодо-генерацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 15:05 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov maytonА ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли. Раз уж речь зашла, можно ли так извратиться с шаблонами, чтобы ими создавался наследник заранее неизвестного класса-параметра со всеми методами, переопределёнными по определённому шаблону? То есть, например: Код: sql 1. 2. 3. 4. 5.
И темплейт (например Implement<Base>) на выходе автоматически имеет Код: sql 1. 2. 3. 4. 5.
Не представляю зачем такое было бы нужно. А вам какую задачу нужно решить? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 16:14 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petravА вам какую задачу нужно решить? Есть API на абстрактных классах. Требуется сделать обёртку к нему, каждый метод которого вызывает соответствующий метод предка, проверяет код возврата и выбрасывает исключение при необходимости. Можно, конечно, это написать и ручками, но а) лень, б) придётся менять код в нескольких местах при изменении базового API. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 16:22 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Есть такая штука. AOP. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 16:39 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Под Java мы когда-то юзали Aspect-J, и похоже в сях есть ее брат-близнец https://www.aspectc.org/Documentation.php ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 23:17 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Есть такая штука. AOP. А в плюсы не веб язык. авторПри работе над кодом со сквозной функциональностью, возникают проблемы, связанные с ограничением модульности. Поскольку «поперечное» поведение реализуется разрозненно, разработчики находят такое поведение затруднительным в осмысливании, реализации и изменении. Код для ведения журналов, например, переплетается с кодом, отвечающим в основном за что-либо другое. Вот эта проблема из за которой появился AOP не так часто встречается в десктопе. Поэтому java и ушел в метапрограммирование, спринг и конфигурастов программистов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2020, 06:08 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, авторПримерами сквозной функциональности, как мы уже видели выше, могут служить: логирование, обработка транзакций, обработка ошибок, авторизация и проверка прав, кэширование, элементы контрактного программирования. https://habr.com/ru/post/114649/ Вот эти проблемы в основном построения веб приложения. Не пишут в java уже давно ClassA a = new ClassA() AOP кругом))) и 200 аннотаций над методом))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2020, 06:25 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav На примере Qt, но его тут знать не обязательно. Вот сигнатура, упрощённо: Код: plaintext 1.
Не обращайте внимание, что сигналы и слоты типа "const char *" это устаревшее, но не суть. Мы наследуемся от QObject, вызываем этот метод. Далее объект "sender" генерирует сигнал "signal" и для "this" вызывается "method". Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :) Я думаю, что там где-то кодогенерация с виртуальными функциями. Ну или макрос Q_OBJECT определяет виртуальную функцию, которая возвращает this. Вроде по другому задачу не решить? Я так просто порассуждать. DBus ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2020, 11:04 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, авторПримерами сквозной функциональности, как мы уже видели выше, могут служить: логирование, обработка транзакций, обработка ошибок, авторизация и проверка прав, кэширование, элементы контрактного программирования. https://habr.com/ru/post/114649/ Вот эти проблемы в основном построения веб приложения. Не пишут в java уже давно ClassA a = new ClassA() AOP кругом))) и 200 аннотаций над методом))) AOP возник - задолго до аннотаций. Кстати какая принципиальная разница между например #pragma OpenMP и Java annotation? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2020, 12:36 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton, >AOP возник - задолго до аннотаций. = мое имхо что он возник на проблемах _веб приложений_. В десктопе проблем таких нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2020, 17:18 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, >AOP возник - задолго до аннотаций. = мое имхо что он возник на проблемах _веб приложений_. В десктопе проблем таких нет. Неверный месседж. Любое PHP-приложение - суть веб-приложение. Ты наверное хотел сказать - business process. Enterprise... e.t.c. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2020, 18:49 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть. Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки! Сдался тебе этот кю-ти со слотами прости господи. Интересно было бы узнать, чем по вашему подключение делегатов в WinForms отличается от подключения слотов в Кьют, прости господи? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 17:02 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Языком разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 19:15 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Языком разработки. Я задал бессмысленный вопрос. И получил такой же бессмысленный ответ. Раз семантической разницы нет, то на нет и суда нет. Но мы тут на форуме С++, а не на форуме .NET, товарищ модератор. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 19:43 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Хорошо товарищ Петров. Но я иногда делаю сравнительный анализ. И привлекаю к сравнению языки и технологии не для рекламы а для поиска истины. Надеюсь ты не против поиска истины? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 19:46 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Хорошо товарищ Петров. Но я иногда делаю сравнительный анализ. И привлекаю к сравнению языки и технологии не для рекламы а для поиска истины. Надеюсь ты не против поиска истины? И в чём же тут содержалось (в контексте подключения обработчиков) ваше сравнение языков и технологий? Давайте ближе к истине. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 19:55 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Я не хочу спорить. Ты прав. Развивай дальше сигналы и слоты. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 20:05 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
mayton Я не хочу спорить. Ты прав. Развивай дальше сигналы и слоты. Просто было не очень понятно ваше акцентирование именно что на слотах и сигналах. Причём акцентирование в отрицательном контексте. Что-то вас в этом смущает, хотя во всех остальных языках и технологиях сделано так же. Но, видимо, вы и сами не знаете что вам тут не нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2020, 20:21 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, Слоты и сигналы выглядят чужеродно для сишника. Отсюда именно весь ваш топик. Ну или задайте еще раз свой вопрос топика)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 05:05 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Слоты и сигналы выглядят чужеродно для сишника. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 22:10 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
это для си-плюс-плюсника оно чужеродно Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 00:39 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
egorych PetroNotC Sharp Слоты и сигналы выглядят чужеродно для сишника. А где еще есть: - зарезервированное слово public slots : - мета объектный компилятор для правки исхолников? Никакому прогеру не понравится когда его исходники правят))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 04:30 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, Qt вроде _противопоставил_ "механизму указателей на метод" написав свой собственный механизм. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 05:57 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp А где еще есть: - зарезервированное слово public slots : - мета объектный компилятор для правки исхолников? PetroNotC SharpНикакому прогеру не понравится когда его исходники правят)))moc не правит исходники, он генерит новые, не наговаривай на норвежских самописцев тут)) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 15:53 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Алексей Роза 2020, Qt вроде _противопоставил_ "механизму указателей на метод" написав свой собственный механизм. Имхо в бусте вон, на шаблонах собрали всё то же самое, но они позже Qt пришли, им было проще ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:01 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
egorych, Я вроде простой вопрос задал. - приведи пример пользовательского кода с зарезервированным новым словом в классе public XXXXXX: Если прогеры это широко применяют, то мы увидим. Если нет, то это чужеродно)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:11 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
egorych, авторmoc не правит исходники, он генерит новые, не наговаривай на норвежских самописцев тут)) Это тавталогия. Он не правит исходники буквально и моим пером. Он правит мой код через генерацию нового кода. Неужели непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:16 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC SharpОн правит мой код через генерацию нового кода. Так этим любой препроцессор занимается, вообще-то... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:18 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp egorych, Я вроде простой вопрос задал. - приведи пример пользовательского кода с зарезервированным новым словом в классе Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:20 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Он не правит исходники буквально и моим пером. Он правит мой код через генерацию нового кода ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:24 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
egorych PetroNotC Sharp Алексей Роза 2020, Qt вроде _противопоставил_ "механизму указателей на метод" написав свой собственный механизм. Имхо в бусте вон, на шаблонах собрали всё то же самое, но они позже Qt пришли, им было проще Все тоже самое, но синтаксис ближе к сишному))) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:35 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov PetroNotC SharpОн правит мой код через генерацию нового кода. Так этим любой препроцессор занимается, вообще-то... Выше рассуждали про аннотации Кто то их любит. Кто то нет. Я не люблю. Есть декларативное программирование. Ты любитель? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:38 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
egorych, >__published = 2002 год? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:44 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp egorych, >__published = 2002 год? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:46 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
egorych, Слышал. И лучше застрелюсь))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 16:49 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
PetroNotC Sharp egorych пропущено... с чего бы это? вызов метода класса по указателю - нет ничего более естественного, для сишника то А где еще есть: - зарезервированное слово public slots : - мета объектный компилятор для правки исхолников? Никакому прогеру не понравится когда его исходники правят))) Это была вынужденная мера. И причина была в недостатках самого С++ на те времена. Сейчас нет необходимости в макросах slots, да и в signals тоже. Но и сейчас они могут (они вместе с кодогернератором) предоставить особую гибкость. Но уж слишком особую, гибкость свойственную языкам без строгой типизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 19:19 |
|
connect(): слоты и сигналы
|
|||
---|---|---|---|
#18+
petrav, Остается вопрос что тебя не устраивает как ТС и почему возник топик. Я спокойно воспринимаю законы фреймворка. Если есть спринг, то нужно писать по его законам. Если есть Qt, то нужно писать тоже по его законам. Как пример, использовать QString а не std::string и т.д. Платформу событий тоже испрльзовать Qt. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2020, 04:25 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017330]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
121ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 218ms |
0 / 0 |