Форум сайта python.su
Здравствуйте всем!
Есть логистическая программа на 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”.
Посоветуйте пожалуйста, как стоит решать такую задачу?
Есть ли здесь программисты, способные решить такую задачу?
Спасибо!
Офлайн
В PyQt есть View/Model фреймворк - набор классов для работы с бд в стиле модель/представление. Он представляет собой инструмент среднего качества/удобства.
Я в нем не столь опытен, но кое-что напишу:
1) Конкретных инструментов нет. Делается целиком программно
2) Сделал бы в sql-запросе
3) Сделал бы на событиях
4) Ручной submit есть везде:)
5) Удобство и простота напроч отсутствуют. Могу с уверенностью сказать, что некоторые моменты поначалу точно будут непонятны.
Из своего опыта: если есть возможность, делайте на C#. На нем такая программка за день делается. С PyQt вы получите только ненужные проблемы и полезный опыт.
Офлайн
C# - это Microsoft, а хочется кроссплатформ. Вообще странно получается. Есть отличный кроссплатформенный язык Python, есть отличный кросплатформенный фреймворк Qt и нету нормального табличного виджета. Как тогда делать кросплатформенные десктоп-клиенты к энтерпрайзным базам?
Офлайн
А действительно ли вам нужна кросс-платформенность?
Из своего опыта - если делается программа для предприятия, то обычно можно точно сказать на какой платформе она будет использоваться.
Qt - отличный GUI фреймворк, но вот работа с бд там сделана сложновато, но пожалуй проще, чем в некоторых других.
Это не значит, что работать с бд вообще не возможно. Описанный вами функционал (опять же по своему опыту) просто реализуется только C#, в противном случае вам придется поднапрячся.
И еще один момент - есть умельцы, которые использовали PyQt с sqlAlchemy, что дает неплохой профит. Но это уже не ко мне.
Офлайн