Konsolka we własnym programie

0

Witam, mam aplikację w QT, wszystko fajnie śmiga. Potrzebuję do niej dorobić konsolę, w którą będzie się wklepywać proste komendy sterujące programem. Napisałem nową klasę kontrolera dla konsoli i widok, wszystko fajnie i teraz moje pytanie brzmi, jak najefektywniej zrobić obsługę komend? Normalnie zrobiłbym tak że dostajemy komendę w widoku, parsujemy i na zasadzie drzewka ifów sprawdzamy, którą komendę wybrano i na tej podstawie podejmowałby program akcje. Czy to jedyny i najlepszy sposób?

0

Nie lepiej zrobić pojemnik, który trzymałby pary - nazwę funkcji i wskaźnik do funkcji? Dodać do tego lambda expression z C++11 i mamy całkiem przyjemną konsolę.

0

To jest dobry pomysł, dzięki

0

Jeszcze jedno pytanie. Jak bez tworzenia obiektu globalnego mogę wypisywać z dowolnego miejsca programu coś na tę konsolę (np komunikaty?). Konsola jest wyświetlana w klasie widoku a ta nie może być globalna. Widzę dwa wyjścia 1. Stworzyć jakiś obiekt globalny, któremu przekażę referencję/wskaźnik na klasę widoku, która ma metodę printowania na konsolę komunikatu lub 2. Połączę wszystkie klasy sygnałami i slotami i będę printował poprzez emitowanie sygnału (to chyba zły pomysł)

2

Singleton, Dependency Injection, Service Locator, do wyboru do koloru ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1