создание графического интерфейса с помощью python в linux

<p>быстрый вопрос.</p><p>я использую linux, и я хочу попробовать сделать графический интерфейс с python. я слышал о таких вещах, как qt, gtk + и pygtk, но я не знаю, какие они есть, и в чем разница между ними.</p><p>есть ли разница в том, как они работают с разными de, такими как gnome, kde, xfce и т.д.? есть ли ide, который позволяет создавать графический интерфейс, как это делает microsoft visual studio (для c #, c, visual basic и т.д.)?</p><p>или я должен использовать другой язык, кроме python, для создания приложений с графическим интерфейсом?</p>

<p>ваш первый шаг должен быть <a href="http://wiki.python.org/moin/guiprogramming">http://wiki.python.org/moin/guiprogramming</a> </p><p>некоторые наборы инструментов лучше интегрируются в одной среде по сравнению с другой. например, pyqt, pykde (и совершенно новый <a href="http://www.pyside.org/">pyside</a> ) будут играть лучше в среде kde, тогда как версии gtk (включая виджеты wx) будут лучше сочетаться с рабочими столами gnome/xfce.</p><p>вы должны смотреть на окружающую среду, на которую хотите нацелиться. вы можете использовать базовый набор переносимых графических интерфейсов или более глубокую интеграцию с tour de, например использование встроенного менеджера паролей и анализаторов конфигурационных файлов, которые интегрированы в определенный de, такой как kde или gnome.</p><p>вы также должны учитывать зависимость, которую диктует ваш выбор, и то, что приходит по умолчанию с базовым de. например, pykde в ветке kde 3.x имел нетривиальный набор зависимостей, в то время как в ветке 4.x связывание с плазмой сделало программную зависимость python gui меньшей проблемой.</p><p>существует несколько инструментов ide на разных уровнях полноты и зрелости. лучше всего попробовать еще одну и посмотреть, что лучше всего соответствует вашим потребностям.</p>

<p>я бы не использовал другой язык для создания gui для python.</p><p>мне повезло с wxwidgets, который является связыванием python для wx, кроссплатформенной системы разработки. это довольно легко учиться и довольно мощный. проблема с wxwidgets заключается в том, что он не установлен по умолчанию, поэтому вашим пользователям нужно будет установить его на каждую платформу, на которой они хотят запустить ваше приложение. более подробную информацию об этом можно найти на <a href="http://wxwidgets.org/">http://wxwidgets.org/</a> .</p><p>если вы хотите, чтобы люди могли использовать вашу программу без установки чего-либо еще, используйте tkinter, систему графического интерфейса, которая поставляется с python.</p><p>я бы избегал привязок python для gtk или kde, если вы уже не знаете эти системы. их также необходимо загрузить, и они, кажется, не так популярны, как wxwidgets.</p>

<p>каждая среда рабочего стола использует определенный инструментарий для сборки своих компонентов. например, kde использует qt, а gnome использует gtk.</p><p>использование вами инструментария будет зависеть от того, на какую среду рабочего стола вы нацеливаетесь, и если вы хотите настроить таргетинг на широкий спектр десктопов, используйте инструментарий, который будет работать во многих средах рабочего стола, таких как виджеты wx, которые будут работать на linux, mac os и windows. для создания простых приложений с графическим интерфейсом, tkinter будет делать.</p>

<p>используйте привязки <a href="http://glade.gnome.org/">glade ui designer</a> и pygtk ... это был мой первый опыт работы с python, и есть <a href="http://www.google.com/search?q=python+glade+pygtk&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-us:unofficial&client=firefox-a">множество постов в блогах и учебных пособий, которые помогут вам начать работу)</a> </p>

<p>используйте pygtk. как бы ни был важен этот инструментарий, с pygtk вы также используете glib с его абстракциями файловой системы (модуль python gio), которые очень важны для рабочего стола linux, с его высокоуровневыми функциями кросс-рабочего стола, такими как <a href="http://library.gnome.org/devel/pygobject/stable/glib-functions.html#function-glib--get-user-data-dir"><code>glib.get\_user\_data\_dir()</code>)</a> и его другие инструменты инфраструктуры приложений, а также gobject и его свойство и модель сигналов.</p>