QtAlchemy е колекция от Qt Model-View класове и помощни функции за подпомагане на бързото развитие на настолни приложения за бази данни и Nbsp;. Тя има за цел да осигури силен API за излагане чуждестранни ключови взаимоотношения в елегантни и непосредствени начини за потребителя на приложения , Контекстни менюта, претърсвания и комбо-боксове и раздели интерфейси са всички използвани. Използването на SQLAlchemy прави възможно, че тези функции се поддържат от различни Неуспех на бази данни с почти никакви промени в кода.
Класът Command дава начин за изграждане на менюта и ленти с инструменти от декорирани питон функции. Силата на това става все по-очевидно, когато е свързан с оглед, където функцията на командата след това може да получите на идентификатора на избрания елемент на мнение. Това предвижда един гъвкав начин да се свържат команди за всяко запитване SQLAlchemy генерирани гледка.
Пълна документация е на разположение на http://qtalchemy.org.
QtAlchemy е разработен с питон 2.6.x, 0.6.x SQLAlchemy и PyQt 4.7.x. Очаква се, че ще бъде функционален на всички близки версии. Има опит направи за да се уверите, че функция паритет се постига за Windows и Linux (и Mac също, но аз не разполагат с такъв).
QtAlchemy се очаква напълно да се работи с PySide като на версия 1.0.4. Подкрепа PySide могат да бъдат активирани чрез изпълняване скрипт на use_pyside.sh която просто променя вноса от PyQt4 до PySide.
<Силен> Пример
В интерес на е стегнат, с примера, даден тук не справка в база данни.
QtAlchemy използване API2 на PyQt така че ние трябва да се даде възможност, че преди да импортирате PyQt4
& Nbsp; >>> внос глътка
& Nbsp; >>> sip.setapi ("QString", 2)
& Nbsp; >>> sip.setapi ("QVariant", 2)
Класът на имот UserAttr предвижда още един вид определено питон имот. Целта на преоткриването това е да се гарантира, че бихме могли да си взаимодействат с нашите модели и в достатъчна степен осигуряването на единна опит за SQLAlchemy свойствата на колоната и UserAttr свойства.
& Nbsp; >>> от qtalchemy внос UserAttr
& Nbsp; >>> внос DateTime
& Nbsp; >>> клас Person (обект):
& Nbsp; ... име = UserAttr (ул, "Name")
& Nbsp; ... birth_date = UserAttr (datetime.date, "Дата на раждане")
& Nbsp; ... възраст = UserAttr (INT, "възраст (дни)", само за четене = True)
& Nbsp; ...
& Nbsp; ... @ age.on_get
& Nbsp; ... Def age_getter (самостоятелно):
& Nbsp; ... възвръщаемост (datetime.date.today () - self.birth_date) .days
С настоящата декларация, можем да декларираме едно лице и изчисли възрастта им:
& Nbsp; >>> мен = Person ()
& Nbsp; >>> me.name = "Джоел"
& Nbsp; >>> me.birth_date = datetime.date (1979,1,9)
& Nbsp; >>> me.age #depends за днес! - #doctest: + SKIP
& Nbsp; 11746
& Nbsp; >>> me.age- (datetime.date.today () - datetime.date (2011,1,9)) дни # на рождения ден на един> от PyQt4 внос QtCore, QtGui.
& Nbsp; >>> от qtalchemy внос MapperMixin, LayoutLayout, ButtonBoxButton, LayoutWidget
& Nbsp; >>>
& Nbsp; >>> клас PersonEdit (QtGui.QDialog, MapperMixin):
& Nbsp; ... Def __init __ (самостоятелно, майка, човек):
& Nbsp; ... QtGui.QDialog .__ първоначален __ (самостоятелно, майка)
& Nbsp; ... MapperMixin .__ първоначален __ (самостоятелно)
& Nbsp; ...
& Nbsp; ... self.person = лице
& Nbsp; ...
& Nbsp; ... Vbox = QtGui.QVBoxLayout (самостоятелно)
& Nbsp; ... mm = self.mapClass (Person)
& Nbsp; ... mm.addBoundForm (Vbox, ["име", "birth_date"])
& Nbsp; ... mm.connect_instance (self.person)
& Nbsp; ...
& Nbsp; ... бутони = LayoutWidget (Vbox, QtGui.QDialogButtonBox ())
& Nbsp; ... self.close_button = ButtonBoxButton (бутони, QtGui.QDialogButtonBox.Ok)
& Nbsp; ... buttons.accepted.connect (self.btnClose)
& Nbsp; ...
& Nbsp; ... Def btnClose (самостоятелно):
& Nbsp; ... self.submit () # промени спускат да модел на фокус-климата; гарантира получаването съсредоточаването в момента
& Nbsp; ... self.close ()
А, сега, ние само трябва някои ап код за действително ножица това разстояние
& Nbsp; >>> ап = QtGui.QApplication ([])
& Nbsp; >>> Сам = Person ()
& Nbsp; >>> sam.name = "Samuel"
& Nbsp; >>> г = PersonEdit (None, Сам)
& Nbsp; >>> d.exec_ () # GUI взаимодействие - #doctest: + SKIP
& Nbsp; 0
& Nbsp; >>> sam.age # предполага избор от вчера в графичния интерфейс - #doctest: + SKIP
& Nbsp; 1
<Силен> развитие
QtAlchemy все още е в тежко развитие ядро толкова, колкото ми работен график позволява. Документацията се разраства с идеите са конкретно формулирани и да науча сфинкс за широката поколение документация. Ние се стремим към пълно покритие док-тест, колкото е възможно, но PyQt модел-изглед и GUI наложи някои усложнения на док-тестове.
Моите очаквания за 0.7 продължават да се увеличават, така че аз предаде на един 0.6.10 освобождаване под новото име на qtalchemy. Това идва в двойка с чисто нов (и не съвсем завършен) уеб страница http://qtalchemy.org. Преди 0,7 освобождаване, се стремя да имат:
- Документ InputYoke селекция
- PBMdiTable и PBSearchDialog ход да qtalchemy.ext
Какво ново в тази версия:
- Python 3 подкрепата! Не 2to3 или други gotchas.
- поправки SQLAlchemy 0.9x съвместимост
Какво ново във версия 0.8.0:
- Change да PySide като внос по подразбиране
- Релакс лиценз от GPL да LGPL
- Подобряване на климата иго работа
- Създаване на нов PopupKeyListing за въвеждане на ключ чуждестранна
Какво ново във версия 0.7.1:
- QueryDataView натрупан основна способност да requery върху заглавието на колоната кликвания за сортиране
- няколко док поправки
- нова функция семеен помощник за използване Geraldo в qtalchemy.ext.reporttools
Какво ново във версия 0.7.0:
- -добро поведение изключение грешка и докладване за графичните приложения с -out конзола
- ново робство подкрепа падащ списък
- подобряване иго документация
- добавите цялостни примери за пред документация
- различни модела / списък подобрения включително ширината на колони неизправния
Какво е новото във версия 0.6.12:
- BoundCommandMenu е слотове да бъдат изпратени от HTML задължителен субект команди за HTML гледане форми
- структуриран натоварване и спести разширяване на рамката в BoundDialog
- нова TreeView излагате QTreeView
- модел дърво подкрепа в PBTableModel
- подобрена преносимост PySide и фиксирани различни катастрофира бъгове, свързани с това
Какво ново във версия 0.6.11:
- контекстно зависими от помощ и за състоянието съвети за полета
- нова preCommand / опресняване сигнали с CommandEvent структура, която позволява абортира от екрана на околната среда
- подобрения в родово съветника за импортиране на данни
- табличен подобрения (корекции на грешки, коригирани актуализации модел, за да бъдат по-точни)
- използване pywin32 ShellExecute вместо os.system за по-добро прозорци подкрепа
Какво ново във версия 0.6.10:
- преименуван на qtalchemy
- изложени асоциация на икони Qt с команди, включени в менюта и ленти с инструменти
- премества qtalchemy.PBTable да qtalchemy.widgets.TableView
- нова qtalchemy.ext модул за общи диалози (Съветник за импортиране на данни за сега)
<силни> Изисквания :
- Python
Коментари не е намерена