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

Какой лучший способ добавить графический интерфейс в приложение Pygame?

Есть ли хорошие графические интерфейсы, которые поддерживают поверхности Pygame как виджет в приложении?

Если это невозможно или практично, какой набор инструментов GUI имеет лучший графический компонент? Я хочу сохранить ускоренный рендеринг, сделанный оболочкой SDL.

4b9b3361

Ответ 1

Здесь у вас есть объяснение того, как интегрировать и взаимодействовать wxPython и Pygame.

Лучший инструментарий GUI в моих мнениях - wxPython (привязка для wxWidgets), которая имеет виджеты GUI практически для всего, включая виджет OpenGL и некоторая работа была выполнена с помощью SDL.

Ответ 2

Не используйте wxPython, очень сложно хорошо работать с Pygame, как описано в разделе GUI в вики Pygame.

Прежде всего, pygame полагается на SDL, что означает, что он может по одному окну за раз. Таким образом, пытаясь реализовать несколько Gtk, Qt,... экземпляры приложений, которые используют pygame, является невозможностью. Второй Проблемой является то, что эти инструментарий использует собственный основной цикл, что, возможно, заставляет вас трубить их события к вашему экземпляру pygame и наоборот. И чтобы упомянуть некоторые другими пунктами: рисование элементы инструментария в окне pygame невозможно и SDL/pygame полноэкранный режим будет проблематичным.

Вместо этого выберите любую из библиотек, перечисленных внизу этой страницы. Я сам использую pgu.

Ответ 4

Albow и Ocemp активно не поддерживаются. PGU в настоящее время поддерживается Питером Роджерсом, а Виктор Кам превратил большую часть его в Python 3.

Есть 5 инструментариев GUI pygame, которые я пытался запустить под Python 3: Albow, GooeyPy, PGU, pqGUI и sgc. (Я не получил GooeyPy для работы с Python 3, но другие сделали это.)

Я запускал каждый из них через простой счетчик строк http://code.activestate.com/recipes/527746-line-of-code-counter/ для измерения их размеров:

Вот результаты:

Albow code        min=2810, max=4551    (max = 162% of min)
Albow\demo        min= 453, max= 649

GooeyPy\gooeypy   min=2034, max=3941    (max = 194% of min)
GooeyPy\examples  min= 178, max= 351

pgu\pgu           min=2910, max=7047    (max = 242% of min)
incl. pgu\pgu\gui min=1678, max=4638    (max = 276% of min)
pgu\examples      min= 822, max=2527

pqGUI.py          min=1586, max=1834    (max = 116% of min)
Example.py        min= 178, max= 225

sgc (incomplete)  min= 889, max=1243    (max = 140% of min)

(Я хотел также попробовать poutine, Shandy Brown, но я не мог его найти.)

В каждом случае число "min" более типично для "размера" набора инструментов, поскольку оно не учитывает пробелы и комментарии.

Когда число "max" очень близко к минимальному числу, это означает, что в коде не так много пробелов и не много комментариев. pqGUI иллюстрирует это, потому что у него почти нет комментариев, что слишком плохо, потому что (IMO) он делает самые красивые виджеты.

Мне понравился pqGUI, потому что мне нравится внешний вид виджетов, который он делает, но он не поддерживается и не документирован, и я не могу найти автора.

Только два из пяти активно поддерживаются/развиваются: PGU и sgc и sgc являются новыми и неполными.

Это делает PGU ясным лидером.

Dave


P.S. (10/23/2012). Я создал собственный инструментарий GUI для PyGame. Он основан на виджетах и ​​использует события pygame для связи, поэтому его можно легко отбросить в существующую программу pygame, не перехватив цикл событий. Он поддерживает формы, кнопки, окна, модальные и немодальные окна сообщений и диалоговые окна, вертикальные меню, текстовые поля и ползунки (полосы прокрутки). Он плавно обрабатывает перекрывающиеся элементы управления и формы внутри форм.

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

Если, несмотря на эти ограничения, кто-то хочет попробовать, а затем свяжитесь со мной по электронной почте. Спросите о "DavesGUI". Мой адрес электронной почты находится здесь: http://www.burtonsys.com/email/