.
QtAlchemy مجموعه ای از کوارت مدل-مشخصات کلاس ها و توابع کمکی برای کمک به توسعه سریع برنامه های کاربردی پایگاه داده دسکتاپ و nbsp است؛ با هدف ارائه API قوی برای افشای روابط کلید خارجی در راه ظریف و فوری به کاربر از برنامه های کاربردی . منوهای بافت، جستجو و دسته کوچک موسیقی جاز، جعبه و رابط جدولبندیشده همه استفاده شده است. استفاده از SQLAlchemy آن را ممکن می سازد که این ویژگی ها در انواع پایانه (Backend) پایگاه داده با عملا هیچ تغییر کد پشتیبانی می کند.
کلاس فرماندهی می دهد راه را برای ساخت منوها و نوارهای ابزار از توابع پایتون تزئین شده است. قدرت این هنگامی که به یک نمایش که در آن تابع فرمان پس از آن می توانید شناسه آیتم انتخاب شده از نظر دریافت موظف بیشتر آشکار می شود. این یک روش انعطاف پذیر به پیوند دستورات به هر نمایش ها پرس و جو sqlalchemy تولید را فراهم می کند.
مستندات کامل در http://qtalchemy.org در دسترس است.
QtAlchemy شده با 2.6.x پایتون، 0.6.x SQLAlchemy و 4.7.x. پایکیوت را توسعه داده است انتظار می رود که این امر می تواند عملکردی در تمام نسخه های این نزدیکی هست. است وجود دارد تلاش ساخته شده مطمئن شوید که برابری ویژگی برای ویندوز و لینوکس به دست آمده (و مک بیش از حد، اما من یکی را نداشته باشند).
QtAlchemy انتظار می رود که به طور کامل با PySide کار به عنوان نسخه 1.0.4. پشتیبانی PySide را می توان با اجرای اسکریپت پوسته use_pyside.sh که صرفا تغییر واردات از PyQt4 به PySide را فعال کنید.
مثال
در منافع مختصر بودن، به عنوان مثال داده شده در اینجا یک پایگاه داده مرجع نیست.
QtAlchemy با استفاده از API2 از پایکیوت بنابراین ما نیاز به فعال کردن که قبل از وارد PyQt4
و nbsp؛ >>> واردات جرعه
و nbsp؛ >>> sip.setapi ('QString، 2)
و nbsp؛ >>> sip.setapi ('QVariant، 2)
کلاس اموال UserAttr دیگری نوع تعریف اموال پایتون فراهم می کند. هدف از دوباره کاری این به اطمینان حاصل شود که ما می تواند با مدل های ما به اندازه کافی تعامل و ارائه یک تجربه یکسان برای SQLAlchemy خواص ستون و خواص UserAttr بود.
و nbsp؛ >>> از qtalchemy واردات UserAttr
و nbsp؛ >>> واردات تاریخ ساعت
و nbsp؛ >>> کلاس Person (شی):
و nbsp؛ ... نام = UserAttr (STR، "نام")
و nbsp؛ ... birth_date = UserAttr (datetime.date، "تاریخ تولد")
& nbsp؛ در ... سن = UserAttr (هوشمند، "عصر (روز)"، فقط خواندنی = واقعی)
& nbsp؛ در ...
و nbsp؛ ... @ age.on_get
و nbsp؛ ... دف age_getter (خود):
و nbsp؛ ... بازگشت (datetime.date.today () - self.birth_date) .days
با این بیانیه، ما می تواند یک فرد اعلام و محاسبه سن:
و nbsp؛ >>> من = شخص ()
و nbsp؛ >>> me.name = "جوئل"
و nbsp؛ >>> me.birth_date = datetime.date (1979،1،9)
و nbsp؛ >>> #depends me.age در امروز! - #doctest: + SKIP
& nbsp؛ از 11746
را لمس کنید و. >>> me.age- (datetime.date.today () - datetime.date (2011،1،9)) روز # در روز تولد 1> از PyQt4 واردات QtCore، QtGui.
و nbsp؛ >>> از qtalchemy MapperMixin واردات، LayoutLayout، ButtonBoxButton، LayoutWidget
& nbsp؛ در >>>
و nbsp؛ >>> PersonEdit کلاس (QtGui.QDialog، MapperMixin):
و nbsp؛ ... دف __init __ (خود، پدر و مادر، شخص):
و nbsp؛ ... QtGui.QDialog .__ init انجام __ (خود، پدر و مادر)
و nbsp؛ ... MapperMixin .__ init انجام __ (خود)
& nbsp؛ در ...
و nbsp؛ ... self.person = شخص
& nbsp؛ در ...
و nbsp؛ ... vbox = QtGui.QVBoxLayout (خود)
و nbsp؛ ... میلی متر = self.mapClass (شخص)
و nbsp؛ ... mm.addBoundForm (vbox، ["نام"، "birth_date"])
و nbsp؛ ... mm.connect_instance (self.person)
& nbsp؛ در ...
و nbsp؛ ... دکمه = LayoutWidget (vbox، QtGui.QDialogButtonBox ())
و nbsp؛ ... self.close_button = ButtonBoxButton (دکمه ها، QtGui.QDialogButtonBox.Ok)
و nbsp؛ ... buttons.accepted.connect (self.btnClose)
& nbsp؛ در ...
و nbsp؛ ... دف btnClose (خود):
و nbsp؛ ... self.submit () # تغییرات فرود به در تمرکز-تغییر مدل. اطمینان از دریافت تمرکز کنونی
و nbsp؛ ... self.close ()
و، در حال حاضر، ما فقط نیاز به برخی از کد برنامه در واقع به این لگد کردن
و nbsp؛ >>> برنامه = QtGui.QApplication ([])
و nbsp؛ >>> سام = شخص ()
و nbsp؛ >>> sam.name = "ساموئل"
و nbsp؛ >>> D = PersonEdit (هیچ، سام)
و nbsp؛ >>> d.exec_ () # رابط کاربری گرافیکی تعامل - #doctest: + پرش
& nbsp؛ در 0
و nbsp؛ >>> sam.age # فرض انتخاب روز گذشته در رابط کاربری گرافیکی - #doctest: + پرش
و nbsp؛ 1
توسعه
QtAlchemy هنوز هم در توسعه هسته سنگین به اندازه برنامه کار من اجازه می دهد تا. مستندات در حال رشد است به عنوان ایده ها منتشر و من مجسمه ابوالهول برای نسل مستندات عمومی را یاد بگیرند. ما برای پوشش توضیحات آزمون کامل که ممکن است در تلاش است، اما پایکیوت مدل-مشخصات و رابط کاربری گرافیکی تحمیل عوارض خاص در توضیحات آزمون.
انتظارات من برای 0.7 همچنان به افزایش، بنابراین من در به انتشار 0.6.10 تحت نام جدید qtalchemy داد. این می آید با یک نام تجاری جدید (و واقعا تمام نشده) صفحه وب http://qtalchemy.org جفت می شود. قبل از انتشار 0.7، هدف من به:
- سند انتخاب InputYoke
- PBMdiTable و PBSearchDialog حرکت به qtalchemy.ext
چه جدید در این نسخه است:
پایتون پشتیبانی 3! بدون 2to3 و یا دیگر اشکالهای.
0.9x SQLAlchemy رفع سازگاری
جدید در نسخه 0.8.0 است:
به تغییر به PySide به عنوان واردات به طور پیش فرض
آرامش مجوز از GPL به LGPL
بهبود دست زدن به تغییر یوغ
ایجاد PopupKeyListing جدید برای ورود کلید خارجی
جدید در نسخه 0.7.1 است:
در QueryDataView توانایی عمومی به requery در کلیک عنوان ستون برای مرتب سازی به دست آورد
چند رفع توضیحات
یاور جدید خانواده تابع برای استفاده از Geraldo پس در qtalchemy.ext.reporttools
جدید در نسخه 0.7.0 است:
در بهبود استثنا رفع خطا و گزارش برای برنامه های کاربردی رابط کاربری گرافیکی با خارج کنسول
یوغ جدید حمایت از یک جعبه دسته کوچک موسیقی جاز
بهبود مستندات یوغ
نمونه کامل اضافه به جلو اسناد و مدارک
بهبود مدل / لیست های مختلف از جمله عرض ستون متخلف
جدید در نسخه 0.6.12 است:
در BoundCommandMenu تا اسلات از HTML غیر اعزام شود نهاد اتصال فرمان به فرمت html فرم مشاهده
بار ساختار و ذخیره گسترش چارچوب در BoundDialog
TreeView و جدید افشای QTreeView
پشتیبانی مدل درخت در PBTableModel
بهبود قابلیت حمل PySide و ثابت های مختلف را تصادف اشکالات مربوط به آن
جدید در نسخه 0.6.11 است:
در زمینه حساس کمک و وضعیت راهنمایی برای زمینه
سیگنال / تجدید جدید preCommand با ساختار CommandEvent اجازه می دهد ساقط شده توسط صفحه نمایش محیط
بهبود در اطلاعات عمومی جادوگر واردات
بهبود مشخصات جدول (رفع اشکال، به روز رسانی مدل اصلاح شده به عبارت دقیق تر)
استفاده از pywin32 ShellExecute به جای os.system برای پشتیبانی بهتر از ویندوز
چه در نسخه 0.6.10 جدید است:
به تغییر نام به qtalchemy
انجمن کوارت از آیکون در معرض با دستورات ظاهر شدن در منوها و نوارهای ابزار
qtalchemy.PBTable به qtalchemy.widgets.TableView نقل مکان کرد
ماژول qtalchemy.ext جدید برای تبادل مشترک (یک جادوگر واردات داده در حال حاضر)
مورد نیاز:
پایتون
نظر یافت نشد