Russian Qt Forum
Ноябрь 25, 2024, 05:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 4 5 [6]   Вниз
  Печать  
Автор Тема: JS в приложении на Qt/Ком порты/ и прочие глупые вопросы  (Прочитано 34843 раз)
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #75 : Сентябрь 03, 2020, 03:00 »

Логика в том что эвент посылается объекту. Например QMouseEvent посылается виджет под мышкой, а QKeyEvent - объекту в фокусе. Ключевое - объект всегда известен.
Сигнал же посылается "в никуда" - когда кнопка эмитит сигнал pressed() она не знает кто к ней приконнекчен, сколько их и приконнекчен ли кто-то. Она просто посылает сигнал. Если есть подписчики - хорошо, нет подписчиков - тоже хорошо. Таким образом обеспечивается разделение интерфейсов объектов - у одного объекта есть сигналы, у другого - слоты и они друг о друге вообще ничего не знают.
Можно ли сделать это на эвентах? Можно - объект мог бы посылать сам себе эвент QClicked а мы бы его ловили через эвент фильтр. Но это неудобно, потому что вместо функции с нулем-двумя параметрами пришлось бы делать миллиард мелких структур-событий.
Посмотрите на количество сигналов у некоторых классов и прикиньте если бы на каждый метод была бы своя структура.

Да все понятно с механизмом , отличия ясны но вы уперслись в Pressed хрен с ним  анажатие кнопки с символом

я не против слотовой системы , в лине на ней все построено и это как бы нормально даже удобно но какого лешего банальная задача делается только через создание ГЛОБАЛЬНОГО фильтра всех событий ? бред

вотсижу тыкаю и гнашел еще один вопрос : как у формы моей мсоздать свой слот чтобы его было видно из дезайнера ?
Код:
public slots:
    void MySlot(const QString &t);

Код:

public Q_SLOTS:
    void MySlot(const QString &t);

оба не видятся в дезайнере ...

или это вообще так сказть"дизайнер чтобы было " ?



UPD: Вопрос снят , нашел где дл ядизайнер аэто прописывать

получается :
1- создаем слот в хедере
2-описываем его в сорце
3- тыкаем в создание слотов дизайнера и пишим его там ручками ибо даже ctrl+v тамне пашет , а отпарсить секцию в хедере религия н епозволяет
4- в редакторе его добавляем

все работает ..

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

новсе же мне интересно неужелине возможнг без евент фильтра КНОПОЧКУ ОПРОСИТЬ ... рою дальше буржуйские форумы ... вот угораздило же задаться таим простым овпросом ... как в текстовомполе кнопочку перехватить ....
« Последнее редактирование: Сентябрь 03, 2020, 03:27 от Faster » Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #76 : Сентябрь 03, 2020, 03:37 »

Не ну я вообще походу буду хейтером Qt ... нет ну честно
Вот же чел Секс отхватил : https://overcoder.net/q/867581/как-отловить-нажатия-клавиш-в-редактируемом-qtablewidgetitem

Место простое как 2+2, и тут такое адовое решение , не народ ну честно ...  банальщина прехат кнопок в табличке ... ну ... я та кпонимаю капну глубже вообще в осадок выпаду ...

Ура нашел огромную тему с тем же влопросом что и у меня , ипримернотой же задачей ПАЦАН писал терминал Улыбающийся и ему нужно было скажем так не просто получать клавиши а например некоторые символы заставлятькомпонент игнорировать...

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

не цитатта , вольный перевод ...

тоесть в принципе не возможно получить символ орпаботать его и вернуть то что я желаю в место него .... не можно ПАРСИТЬ весьтекст зная где курсор в общем смотреть н агланды через анальное отверстие ... ух как ...

20 часов Qt а уже ощущение как от контроллеров феникс контакт ... второй раз в жизни ...
« Последнее редактирование: Сентябрь 03, 2020, 03:48 от Faster » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #77 : Сентябрь 03, 2020, 03:59 »

какую задачу-то вы решаете? перехватить нажатие кнопки в дизайнере? ну так нельзя. еще в дизайнере нельзя писать на дельфи. и на ассемблере нельзя. и даже на яваскрипте нельзя.
прикладная-то задача какая? просто хоцца? я уже не помню когда я ловил нажатия кнопок руками - это ни зачем не нужно.
если вам нужен шорткат, то это делается через QAction (который внезапно! кинет сигнал) а не через перехват нажатий.
Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #78 : Сентябрь 03, 2020, 04:24 »

не буду описывать все но вот конкретно по перехвату

в общем представьесть прога для обмена с устройством для простоты понимания по ком порту

у  нее есть цать режимов работы . один из них командный

есть текстовое поле там под ввод команды , оч желательно с предсказанием  подсветкой синтаксиса и прочими прелестями современности
а так же там можно отдавать прямые сигналы(непосредственные)  у меня они реализованы (хотел но не смог ) через ctrl/alt/shift+0..f это отправляет на устройство команду установить /сбросить/ инвертировать нужный бит соттветсвенно, но на вводе это отображаться не должнои в место shift+f =F должно быть "" и никакой реакции вот в общем то тот момент на котором я стал озадачиваться данной проблемой...

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

нет не можешь ибо что в билде что в VC интеграция JS это целый квест , на VC чет у меня так адекватно и не работает .. а вот в Qt прям пулей да и еще встроеное взаимодействие с объектами на сях супер... чего я вообще не ожидал и считаю это ЭПИК КРУТОСТЬЮ что движка берет на себя эту нудятину .. а вот банальный подмен символа на вводе Фэйлится ...
да я уже придумал как это все обойти через ввод с формы и имитацию ввода в поле без его фокуса .. но это такой извращенный процесс ... а извращения это не мой конек хотя и приходилось ...

и у меня в голове не вяжется как такая крутость стакой тупостью могут жить рядом

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

затык в простых вещах при класной реализации сложных .. уму не постижимо
« Последнее редактирование: Сентябрь 03, 2020, 05:35 от Faster » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #79 : Сентябрь 03, 2020, 08:31 »

есть текстовое поле там под ввод команды , оч желательно с предсказанием  подсветкой синтаксиса и прочими прелестями современности
а так же там можно отдавать прямые сигналы(непосредственные)  у меня они реализованы (хотел но не смог ) через ctrl/alt/shift+0..f это отправляет на устройство команду установить /сбросить/ инвертировать нужный бит соттветсвенно, но на вводе это отображаться не должнои в место shift+f =F должно быть "" и никакой реакции вот в общем то тот момент на котором я стал озадачиваться данной проблемой...
Не понятно, прямые команды должны исполняться сразу при нажатии комбинации клавиш или добавляться в набираемую команду (без отображения в редакторе)?
Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #80 : Сентябрь 04, 2020, 06:23 »

есть текстовое поле там под ввод команды , оч желательно с предсказанием  подсветкой синтаксиса и прочими прелестями современности
а так же там можно отдавать прямые сигналы(непосредственные)  у меня они реализованы (хотел но не смог ) через ctrl/alt/shift+0..f это отправляет на устройство команду установить /сбросить/ инвертировать нужный бит соттветсвенно, но на вводе это отображаться не должнои в место shift+f =F должно быть "" и никакой реакции вот в общем то тот момент на котором я стал озадачиваться данной проблемой...
Не понятно, прямые команды должны исполняться сразу при нажатии комбинации клавиш или добавляться в набираемую команду (без отображения в редакторе)?

Прмяое управление , так далее прям сейчас ... нажал сработало ... правда тампредпологается наличие некоторых условий но это уже глубоко
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #81 : Сентябрь 04, 2020, 07:05 »

Прмяое управление , так далее прям сейчас ... нажал сработало ... правда тампредпологается наличие некоторых условий но это уже глубоко
И вы реализуете это поведение прямо в виджете редактора? Вы считаете это его задача?
« Последнее редактирование: Сентябрь 04, 2020, 07:07 от Old » Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #82 : Сентябрь 04, 2020, 07:28 »

А почему нет ?
1- есть фокус есть работа
2- еслиего задизаблить то и "хоткеи" работать не будут
да и сами хоткеи меняюся в зависимости от условий

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


а в чем вы видите его назначение, ввести текст и считать его ?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #83 : Сентябрь 04, 2020, 07:49 »

а в чем вы видите его назначение, ввести текст и считать его ?
Конечно.
А что если завтра заказчик вас попросить добавить toolbar с кнопками, выполняющими такие операции? Вы его тоже в виджет редактора будете пытаться добавить? Это у вас вызовет еще больше сложностей.
Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #84 : Сентябрь 04, 2020, 09:39 »

нУ в чем проблема то ? у меня уже реализованы функции с их релаизациями .. точне одна ...
а вот заказчик тут я .. я бы никогда под заказ не стал писать софт в новой среде ...  это просто тупо ... я делаю утилиту для работы с контролерами с идеей последующего её выкладывания для всех ... вот и решил для комьюнити в Qt сделать  и вуаля ...

а вы рьяный защитник я погляжу
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #85 : Сентябрь 04, 2020, 09:51 »

а вот заказчик тут я .. я бы никогда под заказ не стал писать софт в новой среде ...  это просто тупо ... я делаю утилиту для работы с контролерами с идеей последующего её выкладывания для всех ... вот и решил для комьюнити в Qt сделать  и вуаля
Что вуаля? Улыбающийся
Оставьте редактору задачу редактирования текста и попробуйте использовать для активации быстрых функций QShortcut. Их можно положить в коллекция и быстро выполнять enable|disable.
Выбирайте средства под задачу и тогда все будет легко и просто.

а вы рьяный защитник я погляжу
А в чем моя "рьяность" проявлятся? Улыбающийся
« Последнее редактирование: Сентябрь 04, 2020, 16:00 от Old » Записан
Faster
Новичок

Offline Offline

Сообщений: 45


Просмотр профиля
« Ответ #86 : Сентябрь 07, 2020, 08:26 »

Old, свобода это когда т ыделаешь то что от тебя хотя и как хотя но считаешь это только своим выбором ...

Ну а авто подстановка , ипрочие прелести... боже я что на VC что на Блилде это могу сделатьпочему в Qt это считается анальностью ?

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

Рьяный ... все
Записан
Страниц: 1 ... 4 5 [6]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 23.