QtAlchemy gyűjteménye Qt Model-View osztályok és segédfüggvényünk, hogy segítse a gyors fejlődés asztali adatbázis-alkalmazások. & Nbsp; Célja, hogy egy erős API leleplezte idegen kulcs kapcsolatokat, elegáns és azonnali módon a felhasználó az alkalmazások . Helyi menüket, a keresés és a combo-boxok és füleket nyitni mind hasznosítják. Használata SQLAlchemy lehetővé teszi, hogy ezeket a funkciókat támogatja a különböző adatbázis-hátteret gyakorlatilag nincs kód megváltozik.
A Command osztály megadja a módját, hogy állítson össze menük és eszköztárak díszített python funkciókat. A hatalom ezt még nyilvánvalóbbá válik, amikor kötődnek a nézetet, ahol a parancsot a funkció akkor megkapja az azonosító a kiválasztott elem a nézetet. Ez egy rugalmas módon összekapcsolni parancsokat bármely SQLAlchemy lekérdezést generált nézeteit.
A teljes dokumentáció áll rendelkezésre http://qtalchemy.org.
QtAlchemy került kidolgozásra a python 2.6.x, 0.6.x-ről SQLAlchemy és PyQt 4.7.x. Várható, hogy ez megfelelően működjön minden közeli verzió. Van egy erőfeszítés révén győződik meg arról, hogy a szolgáltatás paritás elérését Windows és Linux (és Mac is, de én nem ilyen).
QtAlchemy várhatóan teljesen dolgozni PySide verziótól 1.0.4. PySide támogatást lehet engedélyezni fut a use_pyside.sh shell script, amely pusztán megváltoztatja a behozatalra PyQt4 a PySide.
példa
Annak érdekében, hogy tömör, Az itt megadott példa nem hivatkozik az adatbázis.
QtAlchemy segítségével API2 a PyQt így szükséges, hogy lehetővé teszik, hogy az importálás előtt PyQt4
& Nbsp; >>> import kortyot
& Nbsp; >>> sip.setapi ("QString", 2)
& Nbsp; >>> sip.setapi ("QVariant", 2)
A UserAttr osztályhoz ezzel további meghatározott típusú python tulajdon. A cél az újra feltalálja ez volt, hogy tudtunk lépni a modellek eléggé, és egy egységes élményt SQLAlchemy oszlopok tulajdonságait és UserAttr tulajdonságait.
& Nbsp; >>> from qtalchemy import UserAttr
& Nbsp; >>> import dátumidőpont
& Nbsp; >>> class Person (tárgy):
& Nbsp; ... name = UserAttr (str, "Név")
& Nbsp; ... birth_date = UserAttr (datetime.date, "Születési dátum")
& Nbsp; ... age = UserAttr (int, "Életkor (nap)", csak olvasható = True)
& Nbsp; ...
& Nbsp; ... @ age.on_get
& Nbsp; ... def age_getter (self):
& Nbsp; ... return (datetime.date.today () - self.birth_date) .days
Ezzel a nyilatkozattal, kijelenthetjük egy személy, és a rájuk vonatkozó kora:
& Nbsp; >>> me = Person ()
& Nbsp; >>> me.name = "Joel"
& Nbsp; >>> me.birth_date = datetime.date (1979,1,9)
& Nbsp; >>> me.age #depends ma! - #doctest: + SKIP
& Nbsp; 11746
& Nbsp; >>> me.age- (datetime.date.today () - datetime.date (2011,1,9)). Napok # születésnapi 1> a PyQt4 import QtCore, QtGui
& Nbsp; >>> from qtalchemy import MapperMixin, LayoutLayout, ButtonBoxButton, LayoutWidget
& Nbsp; >>>
& Nbsp; >>> class PersonEdit (QtGui.QDialog, MapperMixin):
& Nbsp; ... def __init __ (self, szülő, személy):
& Nbsp; ... QtGui.QDialog .__ init __ (self, szülő)
& Nbsp; ... MapperMixin .__ init __ (self)
& Nbsp; ...
& Nbsp; ... self.person = személyt
& Nbsp; ...
& Nbsp; ... vbox = QtGui.QVBoxLayout (ön)
& Nbsp; ... mm = self.mapClass (fő)
& Nbsp; ... mm.addBoundForm (vbox, ["name", "birth_date"])
& Nbsp; ... mm.connect_instance (self.person)
& Nbsp; ...
& Nbsp; ... gomb = LayoutWidget (vbox, QtGui.QDialogButtonBox ())
& Nbsp; ... self.close_button = ButtonBoxButton (gombok, QtGui.QDialogButtonBox.Ok)
& Nbsp; ... buttons.accepted.connect (self.btnClose)
& Nbsp; ...
& Nbsp; ... def btnClose (self):
& Nbsp; ... self.submit () # változásokat leereszkedünk a modell hangsúly-változás; biztosítsa megkapják az aktuális fókusz
& Nbsp; ... self.close ()
És most, csak kell egy kis app kódot, hogy ténylegesen rúgni ezt le
& Nbsp; >>> app = QtGui.QApplication ([])
& Nbsp; >>> sam = Person ()
& Nbsp; >>> sam.name = "Samuel"
& Nbsp; >>> d = PersonEdit (Nincs, Sam)
& Nbsp; >>> d.exec_ () # gui kölcsönhatás - #doctest: + SKIP
& Nbsp; 0
& Nbsp; >>> sam.age # vállal válogatott tegnap a gui - #doctest: + SKIP
& Nbsp; 1
Fejlesztési
QtAlchemy Jelenleg még alapvető fejlesztési annyira, mint én ütemtervet lehetővé teszi. A dokumentáció növekszik, mint az ötletek dolgozni, és tanulok szfinx az általános dokumentáció generálás. Arra törekszünk, hogy a teljes doc-teszt lefedettség csak lehetséges, de PyQt modell-nézet és a gui meghatároznak bizonyos komplikációk a doc-tesztek.
Saját várakozások 0,7 tovább emelkedik, így adtam be a 0.6.10 kiadás az új neve qtalchemy. Ez pedig párosítva egy teljesen új (és nem igazán kész) internetes oldalon http://qtalchemy.org. Mielőtt a 0.7 kiadás, igyekszem, hogy:
- Dokumentum InputYoke kiválasztása
- PBMdiTable és PBSearchDialog lépés, hogy qtalchemy.ext
Mi az új ebben a kiadásban:
- Python 3 támogatást! Nem 2to3 vagy más gotchas.
- SQLAlchemy 0.9x-rögzítők
Mi az új verzióban 0.8.0:
- Váltás PySide alapértelmezett import
- Relax licenc GPL hogy LGPL
- Javítani igát változás kezelése
- Új PopupKeyListing külföldi gomb bevitel
Mi az új verzióban 0.7.1:
- QueryDataView szerzett alapvető képessége requery a oszlop fejlécére kattintással válogatás
- Néhány doc javítások
- új segítő funkciót család segítségével Geraldo a qtalchemy.ext.reporttools
Mi az új verzióban 0.7.0:
- jobb kivétel hiba, és jelentési a GUI alkalmazások kijelentkezés konzol
- új igát támogatja a combo box
- javítására igát dokumentációt
- add komplett példát előtt dokumentációt
- különböző modell / list javítását, ideértve oszlop szélességét mulasztó
Milyen új verzióban 0.6.12:
- BoundCommandMenu már bővítőhely a ló html kötő egység parancsok html megtekintésére formák
- strukturált terhelését és a keret kiterjesztése a BoundDialog
- új TreeView felfedve a QTreeView
- fa modell támogatást PBTableModel
- javult PySide a hordozhatóság és a rögzített különböző baleset-bogarak kapcsolatos, hogy
Mi az új verzióban 0.6.11:
- környezetfüggő súgó és állapot tipp a mezőket
- új preCommand / refresh jelek CommandEvent struktúra, ami megszakítaná a környezeti képernyő
- javítását általános adatok importálása varázsló
- táblanézetet fejlesztések (hibajavítások, korrigált modellfrissítés pontosabban)
- pywin32 ShellExecute helyett os.system a jobb ablakok támogatás
Mi az új verzióban 0.6.10:
- átnevezték qtalchemy
- kitéve Qt szövetség ikonok parancsok megjelenő menük és eszköztárak
- költözött qtalchemy.PBTable hogy qtalchemy.widgets.TableView
- új qtalchemy.ext modul közös dialógusok (egy adat import varázslót most)
követelmények :
- Python
Hozzászólás nem található