Форум сайта python.su
Подскажите на чем лучше сделать GUI, чтобы работало быстро и не подтупливало. Причем контролов будет много, если в один момент времени может показываться до сотни, различных элементов, редактируемые кривые, средства управления координатными осями, кнопки различных типов, маленькие полупрозрачные окна с полями, поверх основного окна. Также видимо будет самописные контролы.
Еще, видимо, немаловажно - такая вещь как удобство написания своих контролов.
Наиболее близко к тому что я представляю и из того что я видел это интерфейс Blender (хотя задачи совсем не близкие :) ).
Пока что есть три варианта:
1. GUI на С++/wxWidgets - почему то не хочется….
2. GUI на Python/wxPython - вероятно будет подтупливать.
3. GUI на Python/PyQT - опыта вообще нет.
У кого-нибудь есть опыт построения громоздких интерфейсов на Python? У кого-нибудь это тормозило? Может лучше все-таки на С++, а Python оставить чисто для скриптов? Поделитесь мнением.
P. S. Чтобы не было вопросов, программа для управления одним научным прибором.
Офлайн
4. GUI на PyGTK?
Не думаю что язык в данном случае будет слабым звеном, скорее это сам GUI или, скажем, X'ы. Если вам покажется стандартный набор виджетов недостаточным и начнете писать что-то своё, в этом случае, роль языка (нативный, интерпретируемый) будет более значимой. Но и опять же. Все необходимые виджеты (и др. ресурсоемкий код) можно написать на “быстром языке”, а логику на Python.
Я не имею опыта создания “больших” интерфейсов. Так что кто будет пошустрее, Qt, GTK или WinAPI, не скажу. Вроде, пока, винда остается самой быстрой в этом плане.
p.s. Ну в Blender всё ручками было сделано :-).
..bw
Отредактировано (Дек. 12, 2008 10:19:17)
Офлайн
Да, забыл еще кроссплатформенность тоже обязательна :). Как мне кажется, это не очень правильное требование, но как сказали, так и надо делать.
bw, спасибо. Если я правильно понял, то аналогичные GUI на wxWidgets и wxPython - работают практически с одинаковой скоростью?
Отредактировано (Дек. 12, 2008 10:34:43)
Офлайн
У меня на работе есть проект, ГУИ писал на wxPython. не могу сказать, что контролов очень много, но достаточно для того, чтобы приложение подтормаживало…притом от машины мало зависит…сравнивал некоторые виджеты с аналогичными в Qt и она показала себя чуть быстрее. В данный момент весь ГУИ переписывается на PyQt :)
Офлайн
По опису прогнозуємої програми дійсно дуже схоже на інтерфейс Blender -а … гляньте на чому він зроблений - вихідні коди відкриті…
може можливо використати їх бібліотеки(якщо там щось своє) ?
Іще як варіант GTK+ Cairo +OpenGL
або ж SDL
Часом рендерингу в режимі реального часу непотрібно? Бо якщо так - то тоді щось легке типу Motif/FLTK +OpenGL
Офлайн
http://www.blender.org/development/architecture/
Там таки можна використати їх UI framework (іде поверх SDL/OpenGL)
Офлайн
clopomor, спасибо, рендерить в реальном времени, не надо, только работа с изображениями, которою с лихвой покрывает PIL(Python) или cxImage (С++). SDL-выглядит немного мощновато, мне же в принципе, нужно GUI сделать, который бы как можно меньше подтупливал.
Офлайн
ну тоді вам підійде будь-яка бібліотека - дивіться ту яка надає максимум потрібних вам компонентів…
підтуплювати інтерфейс буде лише коли його перемальовування буде очікувати завершення якоїсь дії(чи внутрі елементів форми щось постійно рендеритиметься), тому просто виділіть сам процес обробки в окремий процес/тред і керуйте ним … а в формі лише відорбражайте результат
Офлайн