QtAlchemy

Software screenshot:
QtAlchemy
Dettagli del software:
Versione: 0.8.3
Data di caricamento: 20 Feb 15
Sviluppatore: Joel B. Mohler
Licenza: Libero
Popolarità: 38

Rating: 2.0/5 (Total Votes: 1)

QtAlchemy è una raccolta di Qt Model-View classi e funzioni di supporto per aiutare in rapido sviluppo di applicazioni di database desktop di & nbsp;. Esso mira a fornire un forte API per esporre relazioni di chiave esterna in modo elegante e immediate per l'utente delle applicazioni . I menu contestuali, ricerche e caselle combinate e interfacce a schede sono tutti utilizzati. L'uso di SQLAlchemy permette che queste caratteristiche sono supportate su una varietà di database backend praticamente senza modifiche al codice.
La classe Command offre un modo per costruire i menu e barre degli strumenti dalle funzioni pitone decorato. La potenza di questa diventa più evidente quando collegato a una vista in cui la funzione di comando può quindi ricevere l'identificatore della voce selezionata della vista. Questo fornisce un modo flessibile per collegare i comandi a qualsiasi opinione generati interrogazione sqlalchemy.
La documentazione completa è disponibile all'indirizzo http://qtalchemy.org.
QtAlchemy è stato sviluppato con python 2.6.x, 0.6.x SQLAlchemy e PyQt 4.7.x. Si prevede che sarebbe funzionale su tutte le versioni vicini. C'è uno sforzo fatto per assicurarsi che la funzione di parità è raggiunto per Windows e Linux (e mac troppo, ma non ho uno).
QtAlchemy si prevede di lavorare pienamente con PySide dalla versione 1.0.4. Supporto PySide può essere abilitato eseguendo lo script di shell use_pyside.sh che modifica soltanto le importazioni da PyQt4 a PySide.
Esempio
Nell'interesse di essere conciso, l'esempio dato qui non fa riferimento a un database.
QtAlchemy utilizzando API2 di PyQt così dobbiamo permettere che prima di importare PyQt4
& Nbsp; >>> sorso import
& Nbsp; >>> sip.setapi ('QString', 2)
& Nbsp; >>> sip.setapi ('QVariant', 2)
La classe di resistenza UserAttr fornisce ancora un altro tipo definito immobile pitone. Lo scopo di reinventare questo era quello di garantire che si possa interagire con i nostri modelli sufficientemente e fornire un'esperienza uniforme per SQLAlchemy proprietà delle colonne e le proprietà UserAttr.
& Nbsp; >>> da qtalchemy import UserAttr
& Nbsp; >>> datetime import
& Nbsp; >>> classe Persona (oggetto):
& Nbsp; ... name = UserAttr (str, "Nome")
& Nbsp; ... birth_date = UserAttr (datetime.date, "Data di nascita")
& Nbsp; ... età = UserAttr (int, "Età (giorni)", di sola lettura = True)
& Nbsp; ...
& Nbsp; ... @ age.on_get
& Nbsp; ... def age_getter (self):
& Nbsp; ... ritorno (datetime.date.today () - self.birth_date) .days
Con questa dichiarazione, possiamo dichiarare una persona e calcolare la loro età:
& Nbsp; >>> Mi = Person ()
& Nbsp; >>> me.name = "Joel"
& Nbsp; >>> me.birth_date = datetime.date (1979,1,9)
& Nbsp; >>> #depends me.age su oggi! - #doctest: + SKIP
& Nbsp; 11746
& Nbsp; >>> me.age- (datetime.date.today () - datetime.date (2011,1,9)) giorni per il compleanno # 1> da PyQt4 import QtCore, QtGui.
& Nbsp; >>> da qtalchemy MapperMixin importazione, LayoutLayout, ButtonBoxButton, LayoutWidget
& Nbsp; >>>
& Nbsp; >>> classe PersonEdit (QtGui.QDialog, MapperMixin):
& Nbsp; ... def __init __ (self, genitore, persona):
& Nbsp; ... QtGui.QDialog .__ init __ (self, genitore)
& Nbsp; ... MapperMixin .__ init __ (self)
& Nbsp; ...
& Nbsp; ... self.person = persona
& Nbsp; ...
& Nbsp; ... vbox = QtGui.QVBoxLayout (auto)
& Nbsp; ... mm = self.mapClass (Person)
& Nbsp; ... mm.addBoundForm (vbox, ["nome", "birth_date"])
& Nbsp; ... mm.connect_instance (self.person)
& Nbsp; ...
& Nbsp; ... pulsanti = LayoutWidget (vbox, QtGui.QDialogButtonBox ())
& Nbsp; ... self.close_button = ButtonBoxButton (pulsanti, QtGui.QDialogButtonBox.Ok)
& Nbsp; ... buttons.accepted.connect (self.btnClose)
& Nbsp; ...
& Nbsp; ... def btnClose (self):
& Nbsp; ... self.submit () # modifiche scendono di modellare il fuoco cambiamento; assicurarsi che riceve il focus corrente
& Nbsp; ... self.close ()
E, ora, abbiamo solo bisogno di un po 'di codice app per dare realtà questo off
& Nbsp; >>> app = QtGui.QApplication ([])
& Nbsp; >>> sam = Person ()
& Nbsp; >>> sam.name = "Samuel"
& Nbsp; >>> d = PersonEdit (None, sam)
& Nbsp; >>> d.exec_ () # gui interazione - #doctest: + SKIP
& Nbsp; 0
& Nbsp; >>> sam.age # assume selezione di ieri nella gui - #doctest: + SKIP
& Nbsp; 1
sviluppo
QtAlchemy è ancora in sviluppo nucleo pesante quanto il mio programma di lavoro consente. La documentazione è in crescita come le idee si concretizzano e imparano sfinge per la generazione generale documentazione. Ci impegniamo per una copertura completa doc-test il più possibile, ma PyQt model-view e gui imponiamo alcune complicazioni in doc-test.
Le mie aspettative per 0.7 continuano ad aumentare così ho dato in un comunicato 0.6.10 sotto il nuovo nome di qtalchemy. Questo viene accoppiato con una nuova (e non davvero finito) pagina web http://qtalchemy.org. Prima di un rilascio 0.7, ho lo scopo di avere:
- Documento di selezione InputYoke
- PBMdiTable e PBSearchDialog passaggio al qtalchemy.ext

Cosa c'è di nuovo in questa versione:

  • Python 3 sostegno! No 2to3 o altri trucchi.
  • soluzioni di compatibilità SQLAlchemy 0.9x

Cosa c'è di nuovo nella versione 0.8.0:

  • Cambia per PySide come importazioni di default
  • licenza da GPL a LGPL Relax
  • Migliorare cambiamento giogo manipolazione
  • Crea nuovo PopupKeyListing per l'ingresso chiave esterna

Cosa c'è di nuovo nella versione 0.7.1:

  • QueryDataView acquisita capacità di base per rieseguire una query sui clic di intestazione di colonna per la selezione

  • Correzioni
  • alcuni doc
  • nuova famiglia funzione di supporto per l'utilizzo di Geraldo in qtalchemy.ext.reporttools

Cosa c'è di nuovo nella versione 0.7.0:

  • migliore gestione errore di eccezione e reporting per le applicazioni GUI con console -out
  • nuovo giogo sostenere una casella combinata
  • migliorare la documentazione giogo
  • aggiungere esempi completi a fronte della documentazione
  • vari modelli / miglioramenti lista tra cui larghezza della colonna inadempiente

Cosa c'è di nuovo nella versione 0.6.12:

  • BoundCommandMenu è dotato di slot per essere spedito da html entità vincolante comandi in html visualizzazione forme
  • carico strutturato e salvare estendendo il quadro in BoundDialog
  • nuovo TreeView esponendo il QTreeView
  • supporto albero modello in PBTableModel
  • migliorato PySide portabilità e vari crash-bug corretti relativi a quel

Cosa c'è di nuovo nella versione 0.6.11:

  • aiuto sensibile al contesto e di stato suggerimenti per i campi

  • Segnali
  • nuovo precomando / aggiornamento con struttura CommandEvent permettendo abortire dalla schermata ambiente
  • miglioramento della procedura guidata di importazione dati generici
  • vista tabella miglioramenti (correzioni di bug, aggiornamenti modello corretti per essere più precisi)
  • uso pywin32 ShellExecute invece di os.system per un migliore supporto finestre

Cosa c'è di nuovo nella versione 0.6.10:

  • rinominato qtalchemy
  • esposta associazione di Qt di icone con comandi che appaiono nel menu e barre degli strumenti
  • trasferì qtalchemy.PBTable a qtalchemy.widgets.TableView
  • nuovo modulo qtalchemy.ext per dialoghi comuni (una procedura guidata di importazione di dati per ora)

Requisiti :

  • Python

Programmi simili

conrad
conrad

11 May 15

Navicat Premium
Navicat Premium

17 Feb 15

S3QL
S3QL

20 Feb 15

Altri software di sviluppo Joel B. Mohler

PyHacc
PyHacc

14 Apr 15

Commenti a QtAlchemy

I commenti non trovato
Aggiungi commento
Accendere le immagini!