Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 26, 2012 21:40:36

Studentik
От:
Зарегистрирован: 2009-12-26
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt table widget

Здравствуйте всем!

Есть логистическая программа на MS Access + SQL Server. Хочется уйти с Access на PyQt (python 3k), но не нашел ни одного приличного Qt-виджета для работы с табличными данными.

Что хотелось бы получить:
) строчку с итогами по столбцам (нижний футер)
) паджинацию (разбивка больших таблиц на странички и загрузка только нужной части)
) валидацию (непрошедшие валидацию данные подсвечиваются либо не могут быть введены в ячейку)
) batched-updates (изменения в таблице вначале солятся, а потом скопом идут на сервер)
) блэкджек и … в виде удобного и простого пользования из python, открытого кода, тем оформления и пр.

Образцы с подобным функционалом - это Sencha Ext Grid (http://dev.sencha.com/deploy/ext-4.0.0/examples/#sample-2) , Telerik Gridview (http://www.telerik.com/products/winforms/gridview.aspx).

Одной из мыслей было скармливать в QWebView программно подготовленный html с Ext.Grid.Panel. Но нужно тогда как-то связать события между Ext и Python, чтобы, к примеру, был в питоне метод “resizeColumn” и сигнал “columnResized”.

Посоветуйте пожалуйста, как стоит решать такую задачу?
Есть ли здесь программисты, способные решить такую задачу?

Спасибо!



Офлайн

#2 Янв. 27, 2012 05:10:21

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt table widget

В PyQt есть View/Model фреймворк - набор классов для работы с бд в стиле модель/представление. Он представляет собой инструмент среднего качества/удобства.
Я в нем не столь опытен, но кое-что напишу:
1) Конкретных инструментов нет. Делается целиком программно
2) Сделал бы в sql-запросе
3) Сделал бы на событиях
4) Ручной submit есть везде:)
5) Удобство и простота напроч отсутствуют. Могу с уверенностью сказать, что некоторые моменты поначалу точно будут непонятны.
Из своего опыта: если есть возможность, делайте на C#. На нем такая программка за день делается. С PyQt вы получите только ненужные проблемы и полезный опыт.



Офлайн

#3 Янв. 28, 2012 11:04:51

Studentik
От:
Зарегистрирован: 2009-12-26
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt table widget

C# - это Microsoft, а хочется кроссплатформ. Вообще странно получается. Есть отличный кроссплатформенный язык Python, есть отличный кросплатформенный фреймворк Qt и нету нормального табличного виджета. Как тогда делать кросплатформенные десктоп-клиенты к энтерпрайзным базам?



Офлайн

#4 Янв. 29, 2012 07:38:23

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt table widget

А действительно ли вам нужна кросс-платформенность?
Из своего опыта - если делается программа для предприятия, то обычно можно точно сказать на какой платформе она будет использоваться.

Qt - отличный GUI фреймворк, но вот работа с бд там сделана сложновато, но пожалуй проще, чем в некоторых других.
Это не значит, что работать с бд вообще не возможно. Описанный вами функционал (опять же по своему опыту) просто реализуется только C#, в противном случае вам придется поднапрячся.

И еще один момент - есть умельцы, которые использовали PyQt с sqlAlchemy, что дает неплохой профит. Но это уже не ко мне.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version