Mieszanie Qt i Boost
Patrzę na rozpoczęcie projektu w C++ przy użyciu frameworka Qt 4 (wymagany jest wieloplatformowy GUI). Słyszałem świetne rzeczy o bibliotekach Boost od znajomych i online. Zacząłem czytać o obu i chciałem zadać pobieżne pytanie, zanim przejdę zbyt głęboko: czy te dwa "systemy" rozwoju się wykluczają?
Moje wstępne wyszukiwanie i czytanie pokazuje pewne nakładanie się w obsłudze sygnału, niestandardowych systemach budowania i innych prymitywach niskiego poziomu.
Czy to czy warto używać ich obu w tym samym projekcie?
6 answers
Tak, to ma sens. Generalnie wolałbym używać funkcji boost/stdlib tam, gdzie to możliwe, niż ich alternatyw Qt.
Ułatwia to przenoszenie kodu do następnego frameworka.
Ułatwia to Nowym programistom spoza Qt uzyskanie maksymalnej prędkości.
Boost ma kilka świetnych funkcji i jest coraz więcej cały czas.
Uwaga: ciągi do / z widgetów są prawdopodobnie głównym wyjątkiem - wewnątrz GUI użyłbym łańcuchów Qt, aby zapisać mylące odlewy wszędzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-06 02:00:41
Ten artykuł porównuje mechanizm slotów sygnałowych w QT i Boost::Signal bardzo przyzwoicie. Jest to lektura obowiązkowa dla tych, którzy są nieco ciekawi tej mieszanki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-01 19:59:38
Zwłaszcza, że masz zamiar cross-platform, powinieneś mieć ładnie warstwową architekturę, z logiką biznesową i dostępem do danych jak najbardziej usunięte z GUI. W tym przypadku sensowne byłoby użycie Boost podczas pisania backendu aplikacji i przejście tylko do Qt dla frontendu, z obowiązkowym stosem odlewów wykonanych w kleju.
Jeśli twój "silnik" jest oddzielony od Twojego GUI, będziesz mógł zamienić Qt na coś innego w przyszłości (natywny bibliotek) przy minimalnym wysiłku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-26 11:02:10
We (Last.fm) używać ich obu razem, choć dopiero zaczęliśmy to robić, a więc nie mamy jeszcze dużego doświadczenia. Póki co wszystko jest w porządku:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-12 12:41:56
Istnieją potencjalne problemy z użyciem Boost.Sygnały obok QT. Są one udokumentowane w Boost.Sygnały FAQ .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-04 16:25:52
Weź pod uwagę, że Boost Signals2 są dostępne i są bezpieczne dla wątków.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-18 13:57:19