QtAlchemy是Qt的模型 - 視圖類和輔助函數的集合在桌面數據庫應用的快速發展,以幫助 它的目的是提供一個強大的API揭露優雅和直接的方式外鍵關係到應用程序的用戶。上下文菜單,搜索,組合框和標籤的接口都使用。使用SQLAlchemy的使得有可能,這些功能對各種數據庫後端的幾乎沒有更改代碼的支持。
Command類提供了一種方法來裝飾蟒蛇功能構建菜單和工具欄。當結合到一個視圖,其中的命令函數然後可以接收的視圖的選擇的項的標識符的這個能力變得更加明顯。這提供了一種靈活的方式來命令鏈接到任何SQLAlchemy的查詢生成的意見。
完整的文檔,請http://qtalchemy.org。
QtAlchemy已經開發了蟒蛇的2.6.x,SQLAlchemy的0.6.x和PyQt的4.7.x.可以預料,這將是官能上附近的所有版本。有做,以確保功能奇偶校驗實現Windows和Linux的努力(和Mac過,但我沒有之一)。
QtAlchemy有望與PySide工作,充分體現了1.0.4版本。 PySide的支持可以通過運行use_pyside.sh shell腳本只是更改從PyQt4中的進口PySide啟用。
示例
在被簡潔的利益,這裡給出的例子不引用數據庫。
QtAlchemy使用的PyQt的API2所以我們需要啟用導入PyQt4的前
  >>>進口SIP
  >>> sip.setapi('的QString',2)
  >>> sip.setapi('的QVariant',2)
該UserAttr物業類提供了另一種定義類型的Python屬性。重塑此的目的是要確保我們可以用我們的模型充分地相互作用,並提供用於SQLAlchemy的列屬性和UserAttr特性的均勻的體驗。
 從>>>進口qtalchemy UserAttr
  >>>進口日期時間
  >>>類Person(對象):
  ...名稱= UserAttr(海峽,“姓名”)
  ... birth_date = UserAttr(的datetime.date,“出生日期”)
  ......年齡= UserAttr(INT,“年齡(天)”,只讀=真)
  ...
  ... @ age.on_get
  ...高清age_getter(個體經營):
  ...回報(datetime.date.today() - self.birth_date).days
有了這個聲明,我們可以宣布一個人,計算他們的年齡:
  >>>我=人()
  >>> me.name =“喬爾”
  >>> me.birth_date =的datetime.date(1979,1,9)
  >>>今天me.age #depends! - #doctest:+ SKIP
  11746
  >>> me.age-(datetime.date.today() - 的datetime.date(2011,1,9))日#生日1>從PyQt4的進口QtCore,QtGui。
 從>>>進口qtalchemy MapperMixin,LayoutLayout,ButtonBoxButton,LayoutWidget
  >>>
  >>>類PersonEdit(QtGui.QDialog,MapperMixin):
  ...高清__init __(自我,父母,人):
  ... QtGui.QDialog .__的init __(個體經營,母公司)
  ... MapperMixin .__的init __(個體經營)
  ...
  ... self.person =人
  ...
  ... VBOX = QtGui.QVBoxLayout(個體經營)
  ...毫米= self.mapClass(人)
  ... mm.addBoundForm(VBOX,[“名”,“birth_date”])
  ... mm.connect_instance(self.person)
  ...
  ...按鈕= LayoutWidget(VBOX,QtGui.QDialogButtonBox())
  ... self.close_button = ButtonBoxButton(按鈕,QtGui.QDialogButtonBox.Ok)
  ... buttons.accepted.connect(self.btnClose)
  ...
  ...高清btnClose(個體經營):
  ... self.submit()#改變下降對焦點變化模型;確保接收到當前焦點
  ... self.close()
而且,現在,我們只需要一些應用程序的代碼實際上踢這一關
  >>>程序= QtGui.QApplication([])
  >>> SAM =人()
  >>> sam.name =“塞繆爾”
  >>> D = PersonEdit(無,SAM)
  >>> d.exec_()#GUI交互 - #doctest:+ SKIP
  0
  >>> sam.age#假設選擇昨天在GUI - #doctest:+ SKIP
  1
發展
QtAlchemy仍處於重核心開發不亞於我的工作日程安排允許。該文件正在成長為理念的充實,我學到了獅身人面像一般文檔生成。我們力求全面DOC-測試覆蓋率的可能,但PyQt的模型 - 視圖和GUI施加一定的並發症,對DOC檢驗。
我的0.7的預期不斷增加,所以我給到一個0.6.10版本下qtalchemy的新名稱。這都搭配了全新的(並沒有真正完成)網頁http://qtalchemy.org。 0.7發布之前,我的目標有:
- 文件InputYoke選擇
- PBMdiTable和PBSearchDialog舉措qtalchemy.ext
什麼是此版本中的新:
- 在Python 3的支持!沒有2to3的或其他的陷阱。
- 在SQLAlchemy的0.9倍兼容性修正
什麼在0.8.0版本新:
- 在切換到PySide為默認進口
- 在放鬆的GPL許可證LGPL
- 在提高枷鎖改變處理
- 創建外鍵進入新的PopupKeyListing
什麼是0.7.1版本,新的:
- 在QueryDataView獲得了重新查詢的列標題的點擊基本能力分揀
- 在一些文檔修復
- 在新的輔助功能的家庭在使用qtalchemy.ext.reporttools杰拉爾
什麼是0.7.0版本,新的:
- 在改進的異常錯誤處理和報告GUI應用程序退房手續控制台
- 在新的枷鎖配套組合框
- 在提高枷鎖文檔li>
- 添加完整的例子,文檔的正面
- 在各種模式/列表的改進,包括列寬違約
什麼是在0.6.12版本的新:
- 在BoundCommandMenu已經插槽從HTML結合實體出動命令HTML瀏覽形式
- 在結構化加載和保存延長在BoundDialog框架
- 在新的TreeView露出QTreeView則
- 在PBTableModel樹模型的支持
- 在提高PySide便攜性和與該固定各種崩潰的bug
什麼在0.6.11版本是新的:
- 字段的
- 在上下文敏感的幫助和狀態提示
- 在新的前置命令/刷新信號允許的環境屏中止
- 在改進的通用數據導入嚮導
- 在表視圖改進(bug修復,修正模型更新更準確)
- 使用pywin32的ShellExecute,而不是使用os.system更好的Windows支持
與CommandEvent結構
什麼在0.6.10版本是新的:
- 在重命名為qtalchemy
- 在暴露圖標Qt的關聯與出現在菜單和工具欄命令
- 在移動qtalchemy.PBTable到qtalchemy.widgets.TableView
- 在共同對話的新qtalchemy.ext模塊(現在數據導入嚮導)
要求:
- 在Python中
評論沒有發現