Переключение на Главную Страницу Страницы: 1 ... 6 7 [8]  ОтправитьПечать
Очень популярная тема (более 25 ответов) wic: Python + PyQt4 (число прочтений - 55145 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #105 - 06. Июня 2012 :: 12:32
Печать  
blindvic писал(а) 06. Июня 2012 :: 10:01:
Хотелось бы Qt Designer встроить в платформу - такое возможно.

Я тут к кекси присматриваюсь - тоже ведь среда и готового в ней много есть. Редактор там встроенный. Не знаю насколько хороший.
  
Наверх
IP записан
 
Boris_1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 127
Зарегистрирован: 29. Января 2007
Re: wic: Python + PyQt4
Ответ #106 - 06. Июня 2012 :: 12:41
Печать  
а кинь ссылку плиз, или название настоящее, гугл только кексы выдаёт))
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #107 - 06. Июня 2012 :: 13:37
Печать  
  
Наверх
 
IP записан
 
Boris_1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 127
Зарегистрирован: 29. Января 2007
Re: wic: Python + PyQt4
Ответ #108 - 06. Июня 2012 :: 19:58
Печать  
Как это только на кедах работает..
  
Наверх
 
IP записан
 
Boris_1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 127
Зарегистрирован: 29. Января 2007
Re: wic: Python + PyQt4
Ответ #109 - 07. Июня 2012 :: 09:54
Печать  
По справочникам ещё многоуровневость, подчиненность.. Сложно реализуется? В papp классе справочника ссылка на себя же добавляется, где-то надо указать что он иерархический.. затем catalog надо править?
И журналы например, они ж мало чем отличаются от справочников, от чего наследоваться будут? Может есть записки по структуре, для облегчения ковыряния в коде?
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #110 - 09. Июня 2012 :: 09:45
Печать  
Boris_1c писал(а) 07. Июня 2012 :: 09:54:
По справочникам ещё многоуровневость, подчиненность.. Сложно реализуется? В papp классе справочника ссылка на себя же добавляется, где-то надо указать что он иерархический.. затем catalog надо править?
И журналы например, они ж мало чем отличаются от справочников, от чего наследоваться будут? Может есть записки по структуре, для облегчения ковыряния в коде?


papp - модуль с "конфигурацией". catalog == справочник.

Файл: orm/models.py

Код
Выбрать все
class Model(metaclass = ModelMeta):
    """Base class for all tables. Class attributes - the fields.
    Instance attributes - the values for the corresponding table fields.
    """
    # default fields
    id = orm.IdField() # row id. This field is present in all tables
    timestamp = orm.DateTimeField() # version of the record - datetime (with milliseconds) of the last update of this record 



Т.е. каждая модель по умолчанию имеет два поля (колонки в базе данных): id, timestamp

Файл: wic/forms/catalog/w_catalog_view_model.py:

Код
Выбрать все
class CatalogModel(orm.Model):
    """Base model for all catalogs.
    """
    deleted = orm.BooleanField() 



CatalogModel (модель справочника) является подклассом абстрактной модели, у к-й добавлено поле deleted (удалена ли запись).

Чтобы сделать иерархию, по идее надо добавить еще поле parent:

Код
Выбрать все
class CatalogModel(orm.Model):
    """Base model for all catalogs.
    """
    parent = orm.orm.RecordField('CatalogModel', index = True)
    deleted = orm.BooleanField() 



'CatalogModel' указано в кавычках, потому что в момент создания класса имени CatalogModel еще не существует. Если передается строка, она трактуется как путь к модели. Если нет точек - значит это имя модели в текущем модуле. В Джанго, по-моему, тоже так: https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

После добавления поля parent к модели, надо изменить вьюшку в том же файле (WCatalogViewModel). Для этого надо почитать: http://qt-project.org/doc/qt-4.8/QAbstractTableModel.html
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #111 - 09. Июня 2012 :: 09:53
Печать  
Советую, для того чтобы легче разбираться в коде и модифицировать его, использовать Aptana Studio 3. В большинстве случаев наведешь курсор на имя переменной, сделаешь Ctrl+Click и он тебе покажет где это имя было определено.
  
Наверх
 
IP записан
 
vasjakur
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 06. Ноября 2006
Re: wic: Python + PyQt4
Ответ #112 - 09. Июня 2012 :: 11:37
Печать  
Несколько моментов:

1) Технический: куча кода в __init__.py, вплоть до того, что это вообще единственный файл в каталоге, содержащий весь функционал пакета. Это как-то неправильно, ЕМНИП - иниты предназначены для инициализации пакета.
2) Идеологический: своя ОРМ.... Не проще ли взять SQLAlchemy + Elixir, если душа требует именно ActiveRecord? По крайней мере не надо будет заморачиваться с написанием хитровыделанного механизма  запросов.
3) Python 3... куча библиотек и мануалов для начинающих оказались за бортом. Хотя уникод, да.
4) Формы в ui. Лучше бы уж прямо в коде с хелперами, IMHO
5) PyQT стоит денег для коммерческого применения. Почему не PySide?
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #113 - 09. Июня 2012 :: 11:53
Печать  
vasjakur писал(а) 09. Июня 2012 :: 11:37:
Несколько моментов:

1) Технический: куча кода в __init__.py, вплоть до того, что это вообще единственный файл в каталоге, содержащий весь функционал пакета. Это как-то неправильно, ЕМНИП - иниты предназначены для инициализации пакета.
2) Идеологический: своя ОРМ.... Не проще ли взять SQLAlchemy + Elixir, если душа требует именно ActiveRecord? По крайней мере не надо будет заморачиваться с написанием хитровыделанного механизма  запросов.
3) Python 3... куча библиотек и мануалов для начинающих оказались за бортом. Хотя уникод, да.
4) Формы в ui. Лучше бы уж прямо в коде с хелперами, IMHO
5) PyQT стоит денег для коммерческого применения. Почему не PySide?


Отвечу только на 5-й пункт. PyQt выпущена под GPL. GPL не значит, что софт нельзя продавать, а всего ли что ты должен открыть код пользователю. Кроме того, как ты собираешься скрыть питоновский код? Кроме того, насколько мне известно, PyQt и PySide совместимы: достаточно заменить `from PyQt4 import QtCore` на `from PySide import QtCore` (http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt).
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #114 - 09. Июня 2012 :: 11:58
Печать  
vasjakur писал(а) 09. Июня 2012 :: 11:37:
4) Формы в ui. Лучше бы уж прямо в коде с хелперами, IMHO

Можно и так и так. Если укажешь путь к форме - он загрузить форму из ui  файла. Если сделаешь WForm._uiFilePath = None - система не будет загружать форму, тогда тебе надо переопределить WForm.setupUi().
  
Наверх
 
IP записан
 
vasjakur
YaBB Newbies
*
Отсутствует



Сообщений: 7
Зарегистрирован: 06. Ноября 2006
Re: wic: Python + PyQt4
Ответ #115 - 09. Июня 2012 :: 12:07
Печать  
blindvic писал(а) 09. Июня 2012 :: 11:53:
Отвечу только на 5-й пункт. PyQt выпущена под GPL. GPL не значит, что софт нельзя продавать, а всего ли что ты должен открыть код пользователю. Кроме того, как ты собираешься скрыть питоновский код? Кроме того, насколько мне известно, PyQt и PySide совместимы: достаточно заменить `from PyQt4 import QtCore` на `from PySide import QtCore` (http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt).


GPL значит, что производная работа должна распространяться по GPL-совместимой лицензии. И если я захочу юридически ограничить модификацию своего кода, то не смогу. Не самая большая проблема лично для меня, или для вас - но для некоторых это всё же проблема, которой в принципе нет в PySide.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #116 - 09. Июня 2012 :: 12:09
Печать  
vasjakur писал(а) 09. Июня 2012 :: 11:37:
1) Технический: куча кода в __init__.py, вплоть до того, что это вообще единственный файл в каталоге, содержащий весь функционал пакета. Это как-то неправильно, ЕМНИП - иниты предназначены для инициализации пакета.

Можешь делать как хочешь, если собираешься использовать эту платформу:
Цитата:
Personally, I would rather not put substantial code in __init__.py, but there's no deep reason to avoid it -- it's purely a style choice.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #117 - 09. Июня 2012 :: 12:21
Печать  
vasjakur писал(а) 09. Июня 2012 :: 11:37:
2) Идеологический: своя ОРМ.... Не проще ли взять SQLAlchemy + Elixir, если душа требует именно ActiveRecord? По крайней мере не надо будет заморачиваться с написанием хитровыделанного механизма  запросов.

Надо посмотреть. Спасибо за наводку.

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

Буду под неё переделывать.
« Последняя редакция: 09. Июня 2012 :: 20:00 - blindvic »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 
ОтправитьПечать