QtAlchemy

Software screenshot:
QtAlchemy
Software informatie:
Versie: 0.8.3
Upload datum: 20 Feb 15
Ontwikkelaar: Joel B. Mohler
Licentie: Gratis
Populariteit: 38

Rating: 2.0/5 (Total Votes: 1)

QtAlchemy is een verzameling van Qt Model-View klassen en helper functies om te helpen bij de snelle ontwikkeling van de desktop-database applicaties & nbsp;. Het doel is om een ​​sterke API voor het blootstellen van foreign key relaties in een elegante en directe manieren om de gebruiker van toepassingen . Contextmenu's, zoekopdrachten en combo-boxen en tabbed interfaces worden allemaal gebruikt. Het gebruik van SQLAlchemy maakt het mogelijk dat deze worden ondersteund op een verscheidenheid van backends met vrijwel geen code veranderingen.
De klasse Command geeft een manier om de menu's en werkbalken te construeren uit versierd python functies. De kracht van dit wordt meer duidelijk wanneer gebonden aan het oog waar het commando functie dan kunt ontvangen de identifier van het geselecteerde item van het uitzicht. Dit zorgt voor een flexibele manier om commando's te koppelen aan elke sqlalchemy vraag gegenereerd uitzicht.
Volledige documentatie is beschikbaar op http://qtalchemy.org.
QtAlchemy is ontwikkeld met python 2.6.x, 0.6.x en SQLAlchemy PyQt 4.7.x. Verwacht wordt dat het functioneel alle nabijgelegen versies zijn. Er is een poging gedaan om ervoor te zorgen dat de functie pariteit wordt bereikt voor Windows en Linux (en mac ook, maar ik heb geen één).
QtAlchemy naar verwachting volledig werken met PySide vanaf versie 1.0.4. PySide ondersteuning kan worden ingeschakeld door het uitvoeren van de use_pyside.sh shell script dat wijzigt enkel de invoer uit PyQt4 naar PySide.
Voorbeeld
In het belang van het zijn beknopte, doet het hier gegeven voorbeeld niet verwijzen naar een database.
QtAlchemy behulp API2 van PyQt dus we moeten stellen dat vóór het importeren PyQt4
& Nbsp; >>> import slokje
& Nbsp; >>> sip.setapi ('QString', 2)
& Nbsp; >>> sip.setapi ('QVariant', 2)
De UserAttr pand klasse biedt nog een ander type gedefinieerd python pand. Het doel van het opnieuw uitvinden van dit was om ervoor te zorgen dat we konden communiceren met onze modellen voldoende en zorgen voor een uniforme ervaring voor SQLAlchemy kolomeigenschappen en UserAttr eigenschappen.
& Nbsp; >>> van qtalchemy import UserAttr
& Nbsp; >>> datetime import
& Nbsp; >>> klasse Person (object):
& Nbsp; ... name = UserAttr (str, "Naam")
& Nbsp; ... Birth_Date = UserAttr (datetime.date, "Geboortedatum")
& Nbsp; ... age = UserAttr (int, "Leeftijd (dagen)", readonly = True)
& Nbsp; ...
& Nbsp; ... @ age.on_get
& Nbsp; ... def age_getter (zelf):
& Nbsp; ... return (datetime.date.today () - self.birth_date) .days
Met deze verklaring, kunnen we verklaren een persoon en berekenen hun leeftijd:
& Nbsp; >>> me = Persoon ()
& Nbsp; >>> me.name = "Joel"
& Nbsp; >>> me.birth_date = datetime.date (1979,1,9)
& Nbsp; >>> me.age #depends op vandaag! - #doctest: + SKIP
& Nbsp; 11746
& Nbsp; >>> me.age- (datetime.date.today () - datetime.date (2011,1,9)) dagen # op de verjaardag van 1> van PyQt4 import QtCore, QtGui.
& Nbsp; >>> van qtalchemy import MapperMixin, LayoutLayout, ButtonBoxButton, LayoutWidget
& Nbsp; >>>
& Nbsp; >>> klasse PersonEdit (QtGui.QDialog, MapperMixin):
& Nbsp; ... def __init __ (zelf, ouder, persoon):
& Nbsp; ... QtGui.QDialog .__ init __ (zelf, ouder)
& Nbsp; ... MapperMixin .__ init __ (zelf)
& Nbsp; ...
& Nbsp; ... self.person = persoon
& Nbsp; ...
& Nbsp; ... vbox = QtGui.QVBoxLayout (zelf)
& Nbsp; ... mm = self.mapClass (persoon)
& Nbsp; ... mm.addBoundForm (vbox, ["naam", "Birth_Date"])
& Nbsp; ... mm.connect_instance (self.person)
& Nbsp; ...
& Nbsp; ... knoppen = LayoutWidget (vbox, QtGui.QDialogButtonBox ())
& Nbsp; ... self.close_button = ButtonBoxButton (knoppen, QtGui.QDialogButtonBox.Ok)
& Nbsp; ... buttons.accepted.connect (self.btnClose)
& Nbsp; ...
& Nbsp; ... def btnClose (zelf):
& Nbsp; ... self.submit () # veranderingen neerdalen om het model op focus-verandering; zorgen voor het ontvangen van de huidige focus
& Nbsp; ... self.close ()
En nu hebben we alleen nodig hebben app-code om daadwerkelijk te schoppen deze off
& Nbsp; >>> app = QtGui.QApplication ([])
& Nbsp; >>> sam = Persoon ()
& Nbsp; >>> sam.name = "Samuel"
& Nbsp; >>> d = PersonEdit (Geen, sam)
& Nbsp; >>> d.exec_ () # gui interactie - #doctest: + SKIP
& Nbsp; 0
& Nbsp; >>> sam.age # veronderstelt selectie van gisteren in de gui - #doctest: + SKIP
& Nbsp; 1
Ontwikkeling
QtAlchemy is nog steeds in zwaar kern ontwikkeling zoveel als mijn werk schema het toelaat. De documentatie groeit als de ideeën worden uitgewerkt en ik leer sfinx voor de algemene documentatie generatie. Wij streven naar volledige doc-test dekking mogelijk, maar PyQt model-view en gui daarvoor bepaalde complicaties op doc-testen.
Mijn verwachtingen voor 0,7 blijven stijgen gaf ik in een 0.6.10 versie onder de nieuwe naam van qtalchemy. Dit komt gepaard met een gloednieuwe (en niet echt afgewerkt) webpagina http://qtalchemy.org. Voordat een 0.7 release, ik strekt:
- Document InputYoke selectie
- PBMdiTable en PBSearchDialog verhuizing naar qtalchemy.ext

Wat is nieuw in deze release:

  • Python 3 steun! Geen 2to3 of andere addertjes onder het gras.
  • SQLAlchemy 0.9x compatibiliteitscorrecties

Wat is nieuw in versie 0.8.0:

  • Veranderen naar PySide als standaard invoer
  • Relax licentie van GPL naar LGPL
  • Verbeter juk verandering hanteren
  • Maak een nieuwe PopupKeyListing voor buitenlandse key binnenkomst

Wat is nieuw in versie 0.7.1:

  • QueryDataView opgedaan basic mogelijkheid om requery op kolomkop klikken voor het sorteren
  • een paar doc fixes
  • nieuwe helper functie familie voor het gebruik van Geraldo in qtalchemy.ext.reporttools

Wat is nieuw in versie 0.7.0:

  • verbeterde uitzondering foutafhandeling en rapportage voor GUI applicaties met uitchecken console
  • nieuw juk ondersteunen van een keuzelijst
  • verbeteren juk documentatie
  • toevoegen volledige voorbeelden aan de voorkant van de documentatie
  • diverse model / lijst verbeteringen waaronder kolombreedte in gebreke

Wat is nieuw in versie 0.6.12:

  • BoundCommandMenu heeft slots te worden van html bindend entiteit verzonden commando's naar html bekijken van formulieren
  • gestructureerd laden en opslaan uitbreiding van het kader in BoundDialog
  • nieuwe TreeView blootstellen van de QTreeView
  • boom model ondersteuning bij PBTableModel
  • verbeterd PySide draagbaarheid en vaste diverse crash-bugs met betrekking tot dat

Wat is nieuw in versie 0.6.11:

  • contextgevoelige help en status tips voor velden
  • nieuwe vrijgave / refresh signalen met CommandEvent structuur waardoor het afbreken door op het scherm ambient
  • verbeteringen in de generieke Wizard gegevens importeren
  • tabelweergave verbeteringen (bug fixes, gecorrigeerd model updates om meer precies te zijn)
  • gebruik pywin32 ShellExecute plaats van os.system voor betere Windows-ondersteuning

Wat is nieuw in versie 0.6.10:

  • hernoemd naar qtalchemy
  • blootgesteld Qt's vereniging van iconen met commando's te zien zijn in de menu's en werkbalken
  • verhuisde qtalchemy.PBTable om qtalchemy.widgets.TableView
  • nieuwe qtalchemy.ext module voor gemeenschappelijke dialogen (een wizard importeren van gegevens voor nu)

Eisen

  • Python

Vergelijkbare software

mongoctl
mongoctl

20 Feb 15

chartio
chartio

20 Feb 15

DBengine
DBengine

2 Jun 15

SQLite Export
SQLite Export

20 Feb 15

Andere software van ontwikkelaar Joel B. Mohler

PyHacc
PyHacc

14 Apr 15

Reacties op QtAlchemy

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!