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: 150

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

MySQLoader
MySQLoader

11 May 15

DbVisualizer
DbVisualizer

17 Feb 15

OSPRep
OSPRep

11 May 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!