где я могу начать изучать программирование в gui?

<p>я достаточно хорошо знаю языки программирования, такие как c/c++, java, python. но все они в основном изучались в классной комнате колледжа/старшей школы, где лучшим пользовательским интерфейсом было пронумерованное меню. вы знаете, стандартные структуры данных, реализация различных алгоритмов, обработка файлов и тому подобное.</p><p>то, что я хочу сделать сейчас, это войти в программирование gui. я не уверен, правильно ли спрашиваю, но я пытаюсь использовать парадигму wimp (указатели меню значков windows). я хочу разместить кнопки и формы. программирование, управляемое событиями, я считаю, что это правильное word, где мое приложение ожидает, пока пользователь что-то щелкнет, что-то наберет и т.д.</p><p>учитывая мой опыт, с чего бы начать? я смотрю на следующие требования -</p><p>1> предпочтительно кросс-платформенный. 2> множество документов, учебных пособий и, если возможно, примеров кода, которые я могу выучить из 3> хорошего инструмента для создания gui, где я могу перетаскивать элементы так, как я хочу, чтобы они отображались.</p><p>любые идеи или предложения, чтобы начать меня?</p>

<p>я попробую книгу <a href="https://rads.stackoverflow.com/amzn/click/com/1568843224">about face: essential of user interface design</a> , она сосредоточена на методах проектирования для пользовательского интерфейса, а также на разработке с учетом целей пользователя, то есть того, что пользователь хочет выполнить, пытаясь чтобы получить вас за "дизайн gui разработчика".</p><p>он также рассматривает историю создания графического интерфейса от microsoft, apple и других компаний. такие вещи, как настройки по умолчанию для macosx (где обычно находятся кнопки "принять" и "отменить" и т.д.), а также причины, по которым это происходит.</p><p>я также посмотрю <a href="http://www.microsoft.com/downloads/details.aspx?familyid=68fc3e77-871c-4b14-915c-1cb029e63cca&displaylang=en">microsoft office 2007 ui design guidelines</a> для microsoft, так как это, вероятно, "что-то будет".</p>

<p> <a href="http://shoesrb.com/">shoes</a> for ruby является кроссплатформенным, очень простым и представляет собой краткое введение в построение окна и обработку событий, происходящих в нем. тоже весело :)</p>

<p>вы ищете <a href="http://trolltech.com/products/qt">qt</a> . это кроссплатформенная инфраструктура c++ gui, включающая в себя все, что вы просили, и даже больше.</p><p>это бесплатно для проектов с открытым исходным кодом, если вы используете gpl.</p>

<p>для людей, заинтересованных в создании пользовательских интерфейсов приложений, доступно множество ресурсов, специфичных для языка и инфраструктуры пользовательского интерфейса. однако, прежде чем углубляться в конкретные технологии, нужно многое узнать о взаимодействии человека с компьютером и о том, как оно применяется к дизайну пользовательского интерфейса. некоторые ссылки для просмотра:</p><ul> <li> <a href="http://www.useit.com/">http://www.useit.com/</a> </li> <li> <a href="https://rads.stackoverflow.com/amzn/click/com/0465067107">дизайн повседневных вещей (книга)</a> </li> <li> <a href="http://worrydream.com/magicink/">http://worrydream.com/magicink</a> (требуется некоторое время для загрузки, но <strong> очень </strong> стоит)</li> </ul><p>после исследования <em> того, что </em> делает хороший пользовательский интерфейс, настало время изучить <em> как </em>:</p><ul> <li> <a href="http://developer.mozilla.org/en/xulrunner">mozilla xulrunner</a> </li> <li>если вы решите использовать <a href="http://java.sun.com/docs/books/tutorial/ui/index.html">java swing</a> , я настоятельно рекомендую <a href="http://www.onjava.com/pub/a/onjava/2002/09/18/relativelayout.html">менеджер относительной разметки</a> </li> </ul><p>конечно, есть много вариантов, включая <a href="http://en.wikipedia.org/wiki/qt\_(toolkit)">qt</a> , <a href="http://www.fltk.org/">fltk</a> и <a href="http://www.developer.com/java/other/article.php/3330861">swt</a> </p>

<p>взгляните на <a href="http://glade.gnome.org">glade</a> и <a href="http://www.gtk.org">gtk</a> . оба действительно просты в использовании. glade - это конструктор gui, а gtk - инструментарий. это кроссплатформенный и кросс-языковой. вы можете загрузить файлы glade практически на любом языке. вот <a href="http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html">учебник glade/gtk</a> </p>

<p>в последнее время я думал точно так же. <a href="http://trolltech.com/products/qt">qt</a> похоже на хорошую платформу кроссплатформенного графического интерфейса, а python кажется хорошим языком для работы.</p><p>итак <a href="http://wiki.python.org/moin/pyqt">pyqt</a> это мое (необразованное) предложение. он включает в себя инструмент для перетаскивания gui.</p>

<p>я хотел бы взглянуть на разработку c # .net и его <a href="http://en.wikipedia.org/wiki/windows\_forms">winforms</a> api. с этим гораздо проще программировать приложения для графического интерфейса для windows, чем с win32 api. вы всегда можете облегчить работу с win32 api позже, если это все еще актуально.</p><p>для кросс-платформенных решений смотрите <a href="http://www.gtk.org/">gtk +</a> , возможно <a href="http://www.pygtk.org/">pygtk</a> . еще один хороший - <a href="http://www.wxwidgets.org/">wxwidgets</a> .</p><p>если вы хотите стать действительно веселым, проверьте <a href="http://shoooes.net/">обувь</a> для руби.</p>

<p>много лет назад я добился самого быстрого прогресса в этой области с помощью visual basic. я предполагаю, что его по-прежнему легко взять, а цикл кода/запуска/отладки безумно продуктивен, и вы быстро научитесь многим полезным вещам. тонны документации и все другие вкусности, которые вы хотите ...</p>

<p>netbeans является кроссплатформенным, и хотя он ориентирован на java разработчиков, вы можете легко устанавливать дополнения для работы с c/c++, ruby и т.д. я использую его для разработки программ на swing с графическим интерфейсом, потому что он очень прост интерфейс для простого перетаскивания gui создания. существует много хорошей документации по разработке с использованием java swing, и я уверен, что есть много документации по использованию netbeans.</p>

<p>поскольку вы уже знаете java, вы должны проверить swing api <a href="http://java.sun.com/docs/books/tutorial/uiswing/">здесь</a> , он предоставляет довольно мощный набор пакетов, которые можно использовать для создания сложных графических интерфейсов. более того, кроссплатформенность, тонна документации и ее можно использовать с ide netbeans.</p>

<p>java swing api является кроссплатформенным и относительно простым, а netbeans является хорошим компоновщиком графического интерфейса.</p>