Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 12, 2008 10:03:43

timas
От:
Зарегистрирован: 2008-08-28
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

Подскажите на чем лучше сделать GUI, чтобы работало быстро и не подтупливало. Причем контролов будет много, если в один момент времени может показываться до сотни, различных элементов, редактируемые кривые, средства управления координатными осями, кнопки различных типов, маленькие полупрозрачные окна с полями, поверх основного окна. Также видимо будет самописные контролы.
Еще, видимо, немаловажно - такая вещь как удобство написания своих контролов.

Наиболее близко к тому что я представляю и из того что я видел это интерфейс Blender (хотя задачи совсем не близкие :) ).

Пока что есть три варианта:
1. GUI на С++/wxWidgets - почему то не хочется….
2. GUI на Python/wxPython - вероятно будет подтупливать.
3. GUI на Python/PyQT - опыта вообще нет.

У кого-нибудь есть опыт построения громоздких интерфейсов на Python? У кого-нибудь это тормозило? Может лучше все-таки на С++, а Python оставить чисто для скриптов? Поделитесь мнением.

P. S. Чтобы не было вопросов, программа для управления одним научным прибором.



Офлайн

#2 Дек. 12, 2008 10:18:47

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

На чем сделать быстрый GUI?

4. GUI на PyGTK?

Не думаю что язык в данном случае будет слабым звеном, скорее это сам GUI или, скажем, X'ы. Если вам покажется стандартный набор виджетов недостаточным и начнете писать что-то своё, в этом случае, роль языка (нативный, интерпретируемый) будет более значимой. Но и опять же. Все необходимые виджеты (и др. ресурсоемкий код) можно написать на “быстром языке”, а логику на Python.

Я не имею опыта создания “больших” интерфейсов. Так что кто будет пошустрее, Qt, GTK или WinAPI, не скажу. Вроде, пока, винда остается самой быстрой в этом плане.

p.s. Ну в Blender всё ручками было сделано :-).

..bw



Отредактировано (Дек. 12, 2008 10:19:17)

Офлайн

#3 Дек. 12, 2008 10:27:31

timas
От:
Зарегистрирован: 2008-08-28
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

Да, забыл еще кроссплатформенность тоже обязательна :). Как мне кажется, это не очень правильное требование, но как сказали, так и надо делать.
bw, спасибо. Если я правильно понял, то аналогичные GUI на wxWidgets и wxPython - работают практически с одинаковой скоростью?



Отредактировано (Дек. 12, 2008 10:34:43)

Офлайн

#4 Дек. 12, 2008 10:36:26

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

У меня на работе есть проект, ГУИ писал на wxPython. не могу сказать, что контролов очень много, но достаточно для того, чтобы приложение подтормаживало…притом от машины мало зависит…сравнивал некоторые виджеты с аналогичными в Qt и она показала себя чуть быстрее. В данный момент весь ГУИ переписывается на PyQt :)



Офлайн

#5 Дек. 12, 2008 14:48:20

clopomor
От:
Зарегистрирован: 2007-06-12
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

По опису прогнозуємої програми дійсно дуже схоже на інтерфейс Blender -а … гляньте на чому він зроблений - вихідні коди відкриті…
може можливо використати їх бібліотеки(якщо там щось своє) ?
Іще як варіант GTK+ Cairo +OpenGL
або ж SDL
Часом рендерингу в режимі реального часу непотрібно? Бо якщо так - то тоді щось легке типу Motif/FLTK +OpenGL



Офлайн

#6 Дек. 12, 2008 15:07:32

clopomor
От:
Зарегистрирован: 2007-06-12
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

http://www.blender.org/development/architecture/
Там таки можна використати їх UI framework (іде поверх SDL/OpenGL)



Офлайн

#7 Дек. 12, 2008 15:38:06

timas
От:
Зарегистрирован: 2008-08-28
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

clopomor, спасибо, рендерить в реальном времени, не надо, только работа с изображениями, которою с лихвой покрывает PIL(Python) или cxImage (С++). SDL-выглядит немного мощновато, мне же в принципе, нужно GUI сделать, который бы как можно меньше подтупливал.



Офлайн

#8 Дек. 12, 2008 16:15:44

clopomor
От:
Зарегистрирован: 2007-06-12
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем сделать быстрый GUI?

ну тоді вам підійде будь-яка бібліотека - дивіться ту яка надає максимум потрібних вам компонентів…
підтуплювати інтерфейс буде лише коли його перемальовування буде очікувати завершення якоїсь дії(чи внутрі елементів форми щось постійно рендеритиметься), тому просто виділіть сам процес обробки в окремий процес/тред і керуйте ним … а в формі лише відорбражайте результат



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version