Подтвердить что ты не робот

Какие API-интерфейсы Python находятся там?

Простой вопрос:

  • Какой API-интерфейс Python GUI существует и каковы преимущества любого данного API?

Я не ищу здесь религиозной войны, я просто хочу хорошо разбираться во всем, что есть в плане API-интерфейсов Python GUI.

4b9b3361

Ответ 2

Я использовал Tkinter и wxPython. Tkinter довольно простой и не использует собственные виджеты. Это означает, что приложения Tkinter будут выглядеть одинаково на любой платформе - это может показаться привлекательным, но на практике это означает, что они выглядят уродливыми на любой платформе: -/Тем не менее, он довольно прост в использовании. Я нашел Мышление в Tkinter очень полезно, когда я учился, потому что раньше я никогда не программировал GUI. Если вам нравятся такие вещи, как кадры и алгоритмы компоновки, кнопки и привязки, вы можете пропустить этот шаг.

Вы можете увеличить Tkinter с помощью Tix (но будьте осторожны, Tix не очень хорошо работает с py2exe). Также проверьте Python Megawidgets, который создает несколько более продвинутых элементов управления, используя основы Tkinter.

Наконец, Tkinter отлично справляется с оболочкой: вы можете запускать интерпретатор, делать что-то вроде "import tkinter" tk = tkinter.Tk() и т.д. и встраивать свой графический интерфейс в интерактивном режиме (и он будет реагировать). (Я думаю, что это не работает, если вы используете IDLE, хотя)

wxPython намного лучше выглядит и поставляется с гораздо большим количеством элементов управления. Это кросс-платформенный (хотя, похоже, немного немного на моем Mac) и использует собственные средства управления на каждой платформе. Это немного запутанно. Он также поставляется с демонстрационным приложением, которое демонстрирует большинство его функций и предоставляет тестовое место для экспериментов. Некоторые конкретные мысли о wxPython:

  • Есть три (?) разных способа выложить виджеты. Игнорировать два из них; просто используйте Sizers. И даже тогда вы можете сделать практически любой макет, используя только BoxSizer и GridBagSizer.
  • Все виджеты wx имеют идентификаторы. Вам не нужно заботиться о том, что такое идентификаторы, но в старые времена (я думаю) вам нужно было знать, поэтому некоторый старый код будет завален явным назначением идентификаторов. И большинство демо-кода будет иметь -1 везде как параметр ID (несмотря на то, что все методы имеют идентификатор в качестве параметра ключевого слова, который по умолчанию равен -1).
  • Убедитесь, что вы получили стандартные документы wxWidgets, а также демонстрацию wxPython - вам нужны они оба.
  • Если вы хотите использовать wxPython с py2exe и хотите, чтобы он выглядел хорошо в Windows XP, вам нужно немного обмануть в setup.py. См. здесь

Ответ 4

Большинство API-интерфейсов GUI python будут обертки вокруг наиболее распространенных API-интерфейсов графического интерфейса c/С++. У вас есть оболочка python для gtk, оболочка python для qt, оболочка python для .NET и т.д. И т.д.

Так что это действительно зависит от ваших потребностей. Если вы ищете самый простой способ рисовать собственные виджеты на Linux, Mac и Windows, переходите к wxPython (оболочка python для WX Widgets). Если кросс-платформа не является одной из ваших потребностей, другие библиотеки могут быть более полезными.

Ответ 5

Вместо того, чтобы публиковать список ваших вариантов, я дам свое скромное мнение:

Я влюблен в wxPython.

Я использовал Qt в С++ и Tk обратно в Tcl, но то, что на самом деле делает меня похожим на wxPython, - это демо, которое вы получите с ним. В демо вы можете просматривать все различные кадры виджетов и т.д., Которые являются частью структуры, видеть исходный код и фактически видеть, как он выглядит во время его работы.

У меня возникли проблемы с сборкой и установкой версии Linux, но теперь, когда у меня она есть, я использую ее все время. Я использовал wxPython для небольших приложений анализа данных, и я написал несколько внутренних инструментов, связанных со сравнением результатов тестов, слиянием исходного кода и т.д.

Ответ 6

Я нашел эту ссылку долгое время: http://www.awaretek.com/toolkits.html. Это предполагает принятие по вашим критериям. Для меня это всегда подразумевает wxPython. В любом случае, это дает вам множество баллов по различным инструментариям. То, что подходит для меня, может быть неправильным для вас. Но это дает вам то, как все забитые забиты в соответствии с вашими критериями, поэтому, если вам не нравится лучший инструментарий по какой-то причине, вы можете увидеть, какие из них наиболее близки вашим критериям.

QT/GTK/WxWidgets (ранее wxWindows), по-видимому, являются одними из самых зрелых кросс-платформенных графических инструментов. Единственная проблема заключается в том, что ни одна из них не установлена ​​с установкой Python по умолчанию, поэтому вам, возможно, придется скомпилировать библиотеки. Если вы хотите, чтобы что-то без установки требовалось просто запускать, перейдите в TKInter, потому что, как уже упоминалось, он устанавливается по умолчанию с помощью Python.

В любом случае, мои критерии были равны 9 по простоте использования, 10 - по зрелости документации/виджетов, 10 - на установленной базе, 5 - генераторам кода gui, 10 - на родном внешнем виде и для windows/linux, и для 1 и 5 для последнего два, я не большой в Mac OSX (даже с 10 здесь он предлагает wxpython).

Ответ 7

PythonCard действительно прост в использовании. Это то, что я бы рекомендовал.

Здесь их запись:

PythonCard - это набор для построения графического интерфейса пользователя для создания межплатформенного рабочего стола приложений в Windows, Mac OS X и Linux, используя язык Python.

Девиз PythonCard - "Простые вещи" должны быть простыми и сложными вещами должно быть возможным ".

PythonCard для вас, если вы хотите быстро разрабатывать графические приложения и легко с минимальными усилиями и кодирование. Apple HyperCard - одна нашего вдохновения; простой, но мощный.

PythonCard использует wxPython. Если ты уже знакомый с wxPython, просто подумайте о PythonCard как о более простом выполнения программ wxPython с целая серия образцов и инструментов уже на месте для копирования и подкласса и инструменты, которые помогут вам построить кросс-платформенных приложений.

Ответ 8

EasyGUI отличается от других графических интерфейсов тем, что EasyGUI НЕ управляется событиями. Это позволяет вам программировать в традиционном линейном режиме и создавать диалоги для простого ввода и вывода, когда вам нужно. Если вы еще не изучили управляемую событиями парадигму для программирования графического интерфейса, EasyGUI позволит вам быть продуктивным с очень основными задачами сразу. Позже, если вы хотите перейти к управляемой событиями парадигме GUI, вы можете сделать это с помощью более мощного пакета GUI, такого как anygui, PythonCard, Tkinter, wxPython и т.д.

Веб-сайт EasyGui

Ответ 9

У WX есть проблемы на Mac.

Я смотрел здесь, так как хочу, чтобы API-интерфейс, управляемый событиями, выполнял некоторые действия на Python. У меня есть wx, установленный на моем mac как часть MatPlotLib, но он работает неправильно. Это не займет от клавиатуры. Я установил это три раза в трех разных операционных системах Mac, и хотя он работал в первый раз, два других раза у меня была эта проблема.

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

Из того, что я прочитал здесь, я дам Tkinter, потому что это должно быть простой и кросс-платформой, но я думал, что просто поделился бы этим с вами. Мне нравится Mac OS по разным причинам, но инструменты python устанавливаются намного проще в Windows (и, возможно, в другой Linux). Я просто подумал, что буду давать перспективу Mac здесь.

Ответ 10

Мне нравится wxPython или Tk.

Tk поставляется со стандартным дистрибутивом Python, поэтому вам не нужно ничего устанавливать.

wxPython (wxWigets) выглядит намного мощнее и выглядит намного приятнее. Он также хорошо работает в кросс-платформенном (хотя и не совсем потому, что использует разные базовые графические API для типов diff-типов)

Ответ 11

Я предпочитаю PyGTK, потому что я парень GNOME. Использование PyGTK для меня очень pythonic. Организация кода кажется последовательной, документация чистая и тщательная, и это очень простой инструментарий для использования (кроме, возможно, Treeviews).

Ответ 12

Простой в использовании графический пользовательский интерфейс для Python не существует. Что удивительно, учитывая небольшие языки сценариев, такие как AutoIt и AutoHotkey, отличные и очень простые в использовании графические пользователи. Пойдем, последователи Питона, не могли бы вы сделать лучше?

Ответ 13

Я работаю с wxPython в течение нескольких лет, и мне это нравится совсем немного. Самое лучшее в wxPython заключается в том, что пользовательский интерфейс чувствует себя родным на разных платформах, на которых он работает (отлично работает в Windows и Linux, но не так хорош в ОС /X ).

API не имеет некоторой согласованности, но вы быстро привыкаете к нему.

Вы можете проверить Testuff (бесстыдный плагин, так как это мой собственный продукт), чтобы понять, что можно сделать с помощью wxPython (хотя я должен сказать, приложив немало усилий).

Ответ 14

wxPython, и я предполагаю, что PyGTK также может использовать wxGlade, чтобы помочь вам создать большинство пользовательских интерфейсов, которые вы создадите. Это большой плюс. Вам не нужно научиться рисовать графический интерфейс вручную, пока не будете готовы. Я сделал несколько графических программ прямо из wxGlade, прежде чем я был достаточно уверен в том, как wxPython работал, чтобы сделать снимок при ручном кодировании.

PyQt имеет аналогичное графическое устройство компоновки, но мне никогда не удавалось правильно составить PyQt. Также отсутствовали учебные пособия и документация, в которых показано, как создать окончательный код Python; многие из документов, которые я нашел, относятся к версии Qt на С++.

Tkinter хорош для быстрых и грязных программ, но, реалистично, если вы используете wxGlade, может быть быстрее сделать программу с помощью wxPython. Как минимум, вы можете использовать wxGlade, чтобы отображать визуальное представление программы для клиента, а не тратить время на ручной код программы "dummy".

Ответ 15

Существуют такие специфичные для python gui-api, как kivy (преемник или pymt), pygui (основанные на pyrex), pyui и nufox, которые не сравниваются с более надежными инструментами, такими как wxpython, pyqt, pygtk и tkinter.

Это просто дополнительные дополнительные инструменты.

Единственное, что уникально в них - это api, специфичные для python, так же как и prima (perl-specific api) и обувь (специфичный для Ruby api). Это помогает нам понять, что когда tk является tcl-портом api (а другие - c и С++ на основе), то эти api специально выполняются для соответствующих трех языков сценариев.

Из них kivy является наиболее надежным, в то время как кодирование pygui упоминается как очень похожий на python, pyui наименее надежный, но стоит попробовать, и все они должны быть переносимыми везде, где есть приложение на основе python или python.

Тогда существует jpype, который является инструментарием, который можно использовать с jython и pydev, и который на самом деле java japi настраивается под python/jython-интерфейсом.