Название: [РЕШЕНО] QStateMachine Отправлено: ammaximus от Октябрь 10, 2014, 15:36 С удивлением обнаружил, что на форуме ни разу не поднималась тема QStateMachine.
Насколько я понял это реализация конечного автомата с возможностями анимации, но анимация не главное. Т.е. я использую ее не для анимации а просто для реализации некой UML Statechart. 1. Меня огорчило отсутствие do, а главная проблема в отсутствии PseudostateChoice. Как осуществить выбор перехода от состояния к нескольким другим? Я понимаю, что можно унаследовать QState и наворочить что угодно, но это сильно усложнит код и я хотел бы этого избежать. 2. В сети не нашел нормальных примеров использования, а примеры из Qt слишком игрушечные. Примеры в студию! Название: Re: QStateMachine Отправлено: ammaximus от Октябрь 10, 2014, 16:06 3 вопрос. Вот одна из проблем с которой я столкнулся - есть параллельные события. Щелчки мыши переключают режим idle-work и обратно.
Но параллельные состояния зависят друг от друга, а именно, если нажатие мыши происходит, когда активно состояние IDLE, должен произойти переход A-B. Вот что я накрутил и что работает, вместо того, чтобы просто в IDLE.do написать connect(mouseClick,SIGNAL(switchAB). Есть какое то красивое решение этой проблемы в рамках QStateMachine? Название: Re: QStateMachine Отправлено: vulko от Октябрь 13, 2014, 09:26 QStateMachine судя по всему придумывался чисто для поддержки анимации и работы с QStackedLayout(Widget).
Что мешает накидать свою StateMachine? Это совсем не сложно. Да и ничего красивее своей изобразить из Qt-шной все равно не получиться. Название: Re: QStateMachine Отправлено: ammaximus от Октябрь 13, 2014, 11:59 Цитировать QStateMachine судя по всему придумывался чисто для поддержки анимации и работы с QStackedLayout(Widget). ((((Теперь возникло желание дорабатывать Qt Название: Re: QStateMachine Отправлено: ChuCiiPraKray от Октябрь 16, 2014, 07:10 У меня много материала здесь. Может использоваться в повседневной жизни, на самом деле не.
Название: Re: QStateMachine Отправлено: ammaximus от Ноябрь 06, 2014, 23:25 Забыл написать, вниметельно разобрался с этой темой и теперь очень хорошо понимаю как это работает. QStateMachine очень хорошо показала себя в задачах, не имеющих отношение к анимации. Код стал очень удобным и наглядным, а главное невероятно гибким. В случае необходимости я вношу коррективы в uml-схему и сразу же делаю это в коде.
К сожалению, не нашел никаких материалов, которые рассматривали бы ее с этой стороны, даже в англоязычном сегменте. Поэтому, в ближайшее время напишу заметку по этому вопросу. |