Что лучше для студента, программирующего в C++ для изучения для записи GUI: C# по сравнению с QT? [закрытый]

14
задан Liam Daly 22 November 2012 в 04:56
поделиться

7 ответов

Лучше познакомить студентов с Qt, поскольку Qt на самом деле является C ++. C # - это совершенно другой зверь, и если вы используете C #, вы, скорее всего, запутаете своих учеников относительно того, какие вещи специфичны для Microsoft или C # по сравнению с тем, что на самом деле определено в стандарте ISO C ++, тогда как это будет более очевидно с просто C ++. Более того, Qt и C ++ переносимы, поэтому ваши студенты, использующие Mac OS X или Linux, будут благодарить вас за выбор кроссплатформенного фреймворка (Qt также работает в Windows); тогда как, если вы используете C #, вы заставите своих учеников использовать Windows (да, есть Mono, но он работает не так хорошо, как Qt на разных платформах).

Возможно, вас заинтересует мой Шаблон проекта C ++ , который предоставляет достаточную инфраструктуру для разработки приложения Qt GUI на C ++ с использованием CMake, и был протестирован и подтвержден для работы в Mac OS X и Ubuntu Linux. (и, если я получу отзыв о Windows, я гарантирую, что он работает и там). Шаблон включает код, который вызывает графический интерфейс «Hello World» в Qt при запуске с параметром командной строки «--gui».

14
ответ дан 1 December 2019 в 12:26
поделиться

Qt - P / Invoke для использования библиотеки C ++ из C # добавляет еще один слой чепухи, о которой вы даже не хотите думать. Если вы собирались использовать .NET, возможно, стоит подумать об использовании C ++ / CLI, который значительно упрощает связывание управляемого и собственного кода .

1
ответ дан 1 December 2019 в 12:26
поделиться

Я не думаю, что имеет смысл начинать здесь создавать неуправляемые / управляемые гибридные приложения C ++ / C #.

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

Также для практической полезности, я думаю, ясно, что лишь очень немногие проекты будут использовать гибрид C ++ / C #. Если вы делаете свой графический интерфейс на C #, вы также будете выполнять логику, лежащую в основе этого языка. Я не вижу, что можно было бы получить от создания графического интерфейса приложения C ++ на C #.

0
ответ дан 1 December 2019 в 12:26
поделиться

Я бы порекомендовал Qt просто потому, что это C ++, а не C #.

Взаимодействие между C ++ и C # может быть беспорядочным и, на мой взгляд, отвлечет студентов от объекта упражнения (алгоритмов, как вы сказали).

6
ответ дан 1 December 2019 в 12:26
поделиться

Я бы использовал C # для графического интерфейса.

Существует намного больше заданий на C #, чем на C ++, использующих Qt, так почему бы не подготовить их к тому, с чем они, скорее всего, столкнутся после окончания учебы?

Одна проблема, с которой я часто сталкивался в академических кругах, заключается в том, что не учат тому, что есть используется в реальном мире. Конечно, все остальное - это круто, и лично мне это нравится. Тем не менее, моим приоритетом был бы опыт использования в реальном мире после школы.

Кроме того, я не думаю, что опрос кучки программистов - вообще лучший источник совета по этому поводу. Я бы посмотрел, какие технологии большинство компаний нанимает в вашем регионе, скорее всего, для большинства графических интерфейсов рабочего стола это будет .NET или Java.

1
ответ дан 1 December 2019 в 12:26
поделиться

написание графического интерфейса пользователя на C # и вызов неуправляемой библиотеки C ++, поскольку VS - это хорошая стартовая среда IDE, а .NET - наиболее полный набор доступных библиотек. Это предполагает, что у ваших учеников есть доступ к компьютерам с Windows. Если они на Linux, QT будет подходящим вариантом.

1
ответ дан 1 December 2019 в 12:26
поделиться

Вот дикая идея, (пере) написать алгоритм на C # для приложения с графическим интерфейсом. Это тоже служит целям: 1) он аккуратно обходит весь мусор с помощью P / Invoke, C ++ / CLI или COM, просто чтобы нарисовать красивые картинки и 2) в отличие от Qt, он дает вам возможность подчеркнуть различия между алгоритмом и программой. и язык программирования.

0
ответ дан 1 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: