QtAlchemy

Tela Software:
QtAlchemy
Detalhes de Software:
Versão: 0.8.3
Data de upload: 20 Feb 15
Revelador: Joel B. Mohler
Licença: Livre
Popularidade: 38

Rating: 2.0/5 (Total Votes: 1)

QtAlchemy é uma coleção de Qt Model-View classes e funções auxiliares para ajudar no desenvolvimento rápido de aplicações de banco de dados da área de trabalho. & Nbsp; O objetivo é fornecer uma API forte para expor relações de chave estrangeira em formas elegantes e imediatas para o usuário de aplicações . Os menus de contexto, as buscas e caixas de combinação e interfaces com guias são todos utilizados. O uso de SQLAlchemy torna possível que estas características são suportadas em uma variedade de bases de dados de infraestruturas com praticamente nenhuma alteração de código.
A classe Command dá uma maneira de construir menus e barras de ferramentas de funções do Python decoradas. O poder deste se torna mais evidente quando ligado a uma visão em que a função de comando pode então receber o identificador do item selecionado da visão. Isso fornece uma maneira flexível para ligar comandos para quaisquer pontos de vista consulta sqlalchemy gerados.
A documentação completa está disponível no http://qtalchemy.org.
QtAlchemy foi desenvolvido com python 2.6.x, 0.6.x SQLAlchemy e PyQt 4.7.x. Espera-se que seria funcional em todas as versões próximas. Há um esforço feito para se certificar de que paridade de recursos é atingida para Windows e Linux (e Mac também, mas eu não tenho um).
QtAlchemy é esperado para funcionar plenamente com PySide a partir da versão 1.0.4. Apoio PySide pode ser ativada através da execução do script shell use_pyside.sh que altera apenas as importações provenientes PyQt4 para PySide.
Exemplo
Por uma questão de ser conciso, o exemplo dado aqui não faz referência a um banco de dados.
QtAlchemy usando API2 de PyQt assim que nós precisamos para permitir que, antes de importar PyQt4
& Nbsp; >>> gole de importação
& Nbsp; >>> sip.setapi ('QString', 2)
& Nbsp; >>> sip.setapi ('QVariant', 2)
A classe de propriedade UserAttr fornece ainda um outro tipo definido propriedade python. O objetivo de reinventar este era assegurar que poderíamos interagir com os nossos modelos suficientemente e proporcionar uma experiência uniforme para as propriedades da coluna SQLAlchemy e propriedades UserAttr.
& Nbsp; >>> from qtalchemy importação UserAttr
& Nbsp; >>> datetime import
& Nbsp; >>> Pessoa classe (objeto):
& Nbsp; ... name = UserAttr (str, "Name")
& Nbsp; ... birth_date = UserAttr (datetime.date, "data de nascimento")
& Nbsp; ... age = UserAttr (int, "Idade (dias)", readonly = True)
& Nbsp; ...
& Nbsp; ... @ age.on_get
& Nbsp; ... def age_getter (self):
& Nbsp; - .days ... return (self.birth_date datetime.date.today ())
Com esta declaração, podemos declarar uma pessoa e calcular a sua idade:
& Nbsp; >>> me = Person ()
& Nbsp; >>> me.name = "Joel"
& Nbsp; >>> me.birth_date = datetime.date (1979,1,9)
& Nbsp; >>> #depends me.age de hoje! - #doctest: + SKIP
& Nbsp; 11746
& Nbsp; >>> me.age- (datetime.date.today () - datetime.date (2011,1,9)) dias no aniversário # 1> de PyQt4 importação QtCore, QtGui.
& Nbsp; >>> from qtalchemy MapperMixin importação, LayoutLayout, ButtonBoxButton, LayoutWidget
& Nbsp; >>>
& Nbsp; >>> class PersonEdit (QtGui.QDialog, MapperMixin):
& Nbsp; ... def __init __ (self, pai, pessoa):
& Nbsp; ... QtGui.QDialog .__ o init __ (self, parent)
& Nbsp; ... MapperMixin .__ o init __ (self)
& Nbsp; ...
& Nbsp; ... self.person = pessoa
& Nbsp; ...
& Nbsp; ... vbox = QtGui.QVBoxLayout (self)
& Nbsp; ... mm = self.mapClass (Pessoa)
& Nbsp; ... mm.addBoundForm (vbox, ["name", "birth_date"])
& Nbsp; ... mm.connect_instance (self.person)
& Nbsp; ...
& Nbsp; ... botões = LayoutWidget (vbox, QtGui.QDialogButtonBox ())
& Nbsp; ... self.close_button = ButtonBoxButton (botões, QtGui.QDialogButtonBox.Ok)
& Nbsp; ... buttons.accepted.connect (self.btnClose)
& Nbsp; ...
& Nbsp; ... def btnClose (self):
& Nbsp; ... self.submit () # mudanças descer para modelar no foco de mudanças; garantir que recebe o foco actual
& Nbsp; ... self.close ()
E, agora, nós só precisamos de algum código app para realmente chutar esta off
& Nbsp; >>> app = QtGui.QApplication ([])
& Nbsp; >>> sam = Person ()
& Nbsp; >>> sam.name = "Samuel"
& Nbsp; >>> d = PersonEdit (None, sam)
& Nbsp; >>> d.exec_ () # gui interação - #doctest: + SKIP
& Nbsp; 0
& Nbsp; >>> sam.age # assume seleção de ontem no gui - #doctest: + SKIP
& Nbsp; 1
Desenvolvimento
QtAlchemy ainda está em desenvolvimento do núcleo pesado, tanto quanto o meu horário de trabalho permite. A documentação está crescendo como as idéias são desenvolvidas e eu aprendo esfinge para a geração de documentação geral. Nós nos esforçamos para a cobertura doc-teste completo quanto possível, mas PyQt model-view e gui impor certas complicações no doc-testes.
As minhas expectativas para 0,7 continuar a aumentar assim que eu dei em um comunicado de 0.6.10 com o novo nome de qtalchemy. Este vem emparelhado com um novo (e não realmente acabado) página web http://qtalchemy.org. Antes de uma liberação 0,7, pretendo ter:
- Documento seleção InputYoke
- PBMdiTable e PBSearchDialog mudança para qtalchemy.ext

O que é novo nesta versão:

  • apoio Python 3! Sem 2to3 ou outras pegadinhas.
  • correções de compatibilidade SQLAlchemy 0.9x

O que é novo na versão 0.8.0:

  • Alterar para PySide como importações padrão
  • Relaxe licença GPL para LGPL
  • Melhorar a mudança jugo manipulação
  • Criar novo PopupKeyListing para a entrada de chave estrangeira

O que é novo na versão 0.7.1:

  • QueryDataView ganhou habilidade básica para repetir a consulta em cliques de cabeçalho de coluna para a classificação

  • Correções
  • alguns doc
  • nova família função auxiliar para a utilização de Geraldo em qtalchemy.ext.reporttools

O que é novo na versão 0.7.0:

  • melhor manuseamento de erro de exceção e relatórios para aplicações GUI com consola out
  • novo jugo apoiar uma caixa de combinação
  • melhorar a documentação jugo
  • adicionar exemplos completos para frente de documentação
  • vários model / melhorias lista, incluindo a largura da coluna inadimplente

O que é novo na versão 0.6.12:

  • BoundCommandMenu tem ranhuras para ser expedida de html entidade obrigatório comandos para html vendo formas
  • load estruturado e salvar o alargamento do quadro em BoundDialog
  • A nova árvore expondo a QTreeView
  • modelo de árvore de apoio em PBTableModel
  • melhorou portabilidade PySide e várias-bugs de colisão fixos relacionados a esse

O que é novo na versão 0.6.11:

  • ajuda sensível ao contexto e de status dicas para campos

  • Sinais
  • novo PRECOMMAND / refresh com estrutura CommandEvent permitindo abortar pela tela do ambiente
  • melhorias no assistente de importação de dados genérico
  • tabela vista melhorias (correções de bugs, atualizações modelo corrigidos para ser mais preciso)
  • uso pywin32 ShellExecute em vez de os.system para um melhor suporte do Windows

O que é novo na versão 0.6.10:

  • renomeado para qtalchemy
  • expostos associação do Qt de ícones com comandos que aparecem nos menus e barras de ferramentas
  • movido qtalchemy.PBTable para qtalchemy.widgets.TableView
  • novo módulo qtalchemy.ext para diálogos comuns (a assistente de importação de dados por agora)

Requisitos :

  • Python

Programas semelhantes

EJDB
EJDB

18 Jul 15

Goose
Goose

14 Apr 15

DBengine
DBengine

2 Jun 15

Outro software de desenvolvedor Joel B. Mohler

PyHacc
PyHacc

14 Apr 15

Comentário para QtAlchemy

Comentários não encontrado
Adicionar comentário
Ligue imagens!