Qt соджержит штатный ECMA-262-скриптовый движок. суть JavaScript. Т.е. вы берете любюй Qt-шный класс, создаете объект и передаете ссылку на него скриптовому движку; и далее из JavaScript, который ваша же программа и загружвет в скриптовый движок - дергаете все методы объявленные в вашем классе.
т.е. меняя скриптовую часть, вы можете менять бизнес-логику работы бинарной части вашего приложения без пересборки - просто поменяв скрипт.
kazhuravlev: есть шлюз для использования питона с Qt. Щупал его единожды. Не камильфо. Причем не могу сказать что именно - или мне сам питон был слишком противен, или работа с Qt-шными классами в питоньей среде была не удобна.
Было впечалтенияе что "купаешься в сапогах". но то тоже имхо. возможно и потому, что не люблю я питон. ну вот совсем.
@KoMPoTuK:
>> ... сделайте сначала мультиплеер для 4-х человек.
.... я предлагаю вам так сделать не потому что вы якобы "не сможете". Я вам предлагаю над этим подумать только потому, что никогда большой проект не пишется с нуля и сразу. Громадные проекты _выращиваются_. С малого проекта и технологического функционирующего прототипа.
>> "вы ничего не сможете, вы ничего не знаете".
Не совсем так. Я говорю вам
"Вы сможете, но скорее всего не все что хотите сейчас.
И вы знаете, но пока не достаточно, что бы смочь все о чем говорите сейчас."
И указываю вам на основную зону рисков проектов того масштаба, который вы сейчас хотите освоить.
Мы все хотим написать "сталкер". С блекджеком, онлайном и бесшовными локациями))) Я вот в своё время застрял на скрещивании Ogre и Qt и пары демок с туманом ))) главное не отчаиваться. Я вот тоже мало умею. Но знаю что если надо - разберусь и выучу. А "сталкеры" - это для развлечения.
И, имхо - не важно какой метод для сокетов выбрать. Лучше всего - тот метод который работает. В выбор того или иного - это уже оптимизация.
Кодьте, пока не надоест. toster.ru/user/vipuhoff - дело говорит. перебирайте разные решения. Главное - что бы оно заработало. А лучшее решение для вашего проекта само выплывет. Пробуйте одни варианты, другие, переписывайте и прочее.
... если про конкретность....
>> ... сделайте сначала мультиплеер для 4-х человек.
Поймите правильно: вы пытаетесь начать большой проект, с вероятно более-менее серьезной логикой, но при этом (я так подозреваю) вы не понимаете тех логическо-оргнанизаионных проблем с которыми скорее всего столкнетесь.
Выхотите построить сложную систему (почти систему массового обслуживания, сервер обрабатывающий одновременно мнодество подключений) а спрашиваете про то как вам сокеты создавать. Да пофигу какие там сокеты, когда у вас организационные проблемы по созданию внутренней структуры и взаимодействия элементов будут куда более серьезнее.
Попробуем на аналогии: вы задумали построить мост. Красивый, каменный, с ажурными чем-то там и всем прочим. через большую широкую реку.
И начинаете всех спрашивать - а в какой пропорции мне цемент с песком размешивать "что бы крепче было".
Нет, вопрос правильный.
Да только бы перед началом такого проекта - лучше будет сопромат поучить. Да какие-нибудь основы георазведки. Потому что не так важно в какой пропорции цемент размешивать, если он без арматуры, и "неправильной формы", да ещё и стоит на песке.
Так хотите написать сервер - сделайте сначала мультиплеер для 4-х человек. В ограниченной локации. На таком проекте как-раз отладите и сокеты, и выхватите и вылечите пучок паталогических проблем связанных с самой организацией м принципами клиент-серверных технологий.
Я не отговариваю. Просто будьте готовы взявшись за большой проект не смочь его закончить. Я не говорю что это будет бесполезно - просто не падайте духом если поймете что не вытягиваете задачу.
Я вот свой Elite так и не написал). хотя векторную пространственную графику освоил, и алгоритмы удаления невидимых линий и тд и тп.
Это пригодилось мне не раз. Но вот свою Elite я так и не написал)
Упс. да... некропост вышел... простите не глянул на время поста. Оно мне подсунуло в списке смотри также - я решил что это список постов из послежнего времени...
С каких пор баг трекеры умеют _планировать_ загрузку?
и со структурой работ тоже - вы когда-ниубдь пробовали нормальной сложности WBS сделать в багтрекере? я знаю что для редмайна есть _плагин_ - он такой стоит у нас - но пользоваться им - практически нереально.
@xseven я видел пост. сорсы пока не видел, но имхо, тут не подходит ни то ни другое (QGridLayout и QTableView).
QGridLayout нужен для распределения элементов формы (а игровое поле - это не элементы формы) а QTableView для отображения табличных данных (а игровые пятнашки - не табличные данные).
И то и другое - это офисные приложения, а не игровые.
Имхо, наибольшая проблема с попыткой впихнуть пятнышки в вышеперечисленное - это визуальные эффекты с перетаскиванием пятнашки : т.е. вы двинули пятнашку (нажали кнопкой на пятнашку) - она же должна _плавно_ начать съезжать в сторону свободного места, так?
А логика со съезжанием выходит за рамки применения лейаут менеджеров и QTableView. имхо.
@ZzZero я могу набрасать конечно скетч, но в силу текущего рабочего направления деятельнос ти- это будет под под андроид, на джаве, с использованием libGDX )))) не ваш случай. С Qt я плотно не работаю уже года 2, быстро набросать пример для Qt сейчас не смогу. увы...
@ZzZero это не интуиция, это тень ужаса от того, что я успел увидеть за годы работы (злобный-высокомерный-смайлик) ))) ( я системный аналитик со стажем около 20 лет ;) )
Погоди, погоди) ща выяснится что это "пятнашки", а QPushButton надо двигать)))))
и куда мы пойдем и с расширяемостью, и с QGridLayout и с QTableView ? ^_^))))
Ну кроссплатформенностью точно также и LibGDX подкупает, и RoboVM. Причем и тот, и другой бесплатные, и для Java.
А "фичи" дот-нета... ну конечно я с ними не знаком, оценить их красоту не могу. Но насколько я знаю, в полном объеме и нормально, (особенно в части поддержки "последних версий" ) - это все работает только на виндоус. Так что имхо - в части кроссплатформенности - по мне так уж лучше C++\Qt изучать, чем учить C# - который с моей точки зрения есть "нечто, что было создано только для того, что бы создавать конкуренцию Jave". Имхо - это как паскаль - он прекрасен и любим многими (и я писал, каюсь) но это не более чем специально созданный учебный язык. Или как "последних лет" продавливания майкрософтом новых "типа-улучшенных" интерфейсов офисных пакетов и виндуос - оно коненчо нашло своих "почитателей", но надо понимать, что это всё - не более чем "искусственно созданное" на пустом месте; созданное с целью "быть другими" и обеспечить проблемы в переходе на другие тезнологии. Т.е. основная задача - таких телодвижений - в первую очередь - создавать "собственный исключительный кружок", в не решать конкретные боевые потребности.
Вы сейчас, имхо, как раз и озвучиваете некоторые из таких затруднений связанных с выходом их этого "кружка" - мол там "фичи", я там привык и прочее.
А надо просто собраться с силами и выучить "суровую _промышленную_ технологию". Имхо.
Уверен - вы обнаружите, что в джаве фич тоже никак не меньше. И кроме того - громадный плюс Джавы перед кучей всех других языков и технологий - джава машина _полностью_ описана. Абсолютно. Включая даже все костыли и исключения, обеспечивающие работоспособность старого, конца 90-х годов кода, на новых версиях VM.
Этим уже никто почти не пользуется, редко где с ними сталкиваешься, но они описаны и задокументированны.
Поведение машины прогнозируемо на любой платформе от телефона, до майнфрейма в 8-и стойках - и с любым кодом. Именно поэтому оно и стало "суровой промышленной технологией". Учите, не пожалеете ;)
Qt соджержит штатный ECMA-262-скриптовый движок. суть JavaScript. Т.е. вы берете любюй Qt-шный класс, создаете объект и передаете ссылку на него скриптовому движку; и далее из JavaScript, который ваша же программа и загружвет в скриптовый движок - дергаете все методы объявленные в вашем классе.
т.е. меняя скриптовую часть, вы можете менять бизнес-логику работы бинарной части вашего приложения без пересборки - просто поменяв скрипт.