کتابچه راهنمای

ساخت وبلاگ

FBS یک ابزار ساخت مبتنی بر پایتون برای برنامه های رومیزی است که از PYQT یا PYSIDE استفاده می کنند. کد منبع شما را می گیرد و آن را به یک اجرا مستقل در ویندوز ، مک یا لینوکس تبدیل می کند. همچنین به شما امکان می دهد یک نصب کننده برای برنامه خود ایجاد کنید.

بهترین مکان برای شروع با FBS آموزش 15 دقیقه ای است. اگر قبلاً آن را نگرفته اید ، بسیار توصیه می شود که این کار را انجام دهید. این دفترچه راهنما به عنوان منبع بعدی و دقیق تر است.

الزامات

FBS روی ویندوز ، MacOS و Linux (اوبونتو ، Arch یا Fedora) اجرا می شود. شما همچنین به Python 3 نیاز دارید. نسخه رایگان FBS از Python 3. 5 و 3. 6 پشتیبانی می کند. بعداً نسخه های پایتون به FBS Pro نیاز دارند.

نصب و راه اندازی

ساده ترین (و غیر تهاجمی) راه نصب FBS از طریق PIP و یک محیط مجازی پایتون است. برای ایجاد یک محیط مجازی در فهرست فعلی ، دستور زیر را اجرا کنید:

سپس محیط را با یکی از دستورات زیر فعال کنید:

در مرحله بعد ، از PIP برای نصب FBS و وابستگی های آن استفاده کنید:

به طور مشابه می توانید Pyside6 ، PyQT5 یا Pyside2 را نصب کنید. استفاده از PyQT6 یا Pyside6 به FBS Pro نیاز دارد.

دستورات داخلی

نقطه اصلی تماس شما با FBS احتمالاً خط فرمان آن خواهد بود. به عنوان مثال ، دستور

درخواست خود را به یک اجرایی مستقل تبدیل می کند. سایر دستورات موجود StartProject ، Run ، Clean و Installer هستند. برای دیدن توضیحات آنها FBS (بدون استدلال بیشتر) را اجرا کنید. آموزش آنها را در عمل نشان می دهد.

یک پروژه را شروع کنید

ساده ترین راه برای شروع یک پروژه FBS از طریق دستور زیر است:

این باعث می شود شما برای چند مقدار:

Commands for starting a new project with fbs

پس از ورود به آنها ، FBS یک پروژه اسکلت در SRC/ پوشه فهرست فعلی ایجاد می کند.

ساخت دایرکتوری

پروژه های FBS از ساختار دایرکتوری زیر استفاده می کنند. پرانتز (.) نشان می دهد که یک پرونده اختیاری است.

 

SRC/ دایرکتوری ریشه برای پرونده های منبع شما
ساختن/ پرونده هایی برای فرآیند ساخت
تنظیمات/ تنظیمات ساخت:
base. json همه سیستم عامل ها
(mac. json) مخصوص مک
(windows. json) .
(linux. json) همه توزیع های لینوکس
(Arch. Json) مخصوص Arch Linux
(fedora. json) .
(ubuntu. json) .
(Release. Json) در حین انتشار
اصلی/ اجرای برنامه شما
نمادها/ نماد برنامه شما
پایتون/ کد پایتون برای برنامه شما
(منابع/) پرونده های داده ، تصاویر و غیره در زیر مشاهده می کنید.
(یخ زدگی/) پرونده هایی برای یخ زدن برنامه شما
(نصاب/) پرونده های منبع نصب
(پنجره ها/)
(مک/)
.
(الزامات/) وابستگی های پایتون شما:
(base. txt) در همه سیستم عامل ها
(linux. txt) در تمام توزیع های لینوکس
(arch. txt) در Arch Linux
. .

همانطور که از FBS استفاده می کنید ، خواهید دید که در پوشه ای به نام Target/ ، در کنار دایرکتوری های فوق ، خروجی تولید می کند. همچنین ممکن است پوشه ای به نام Cache/ ایجاد کند که می توانید هر زمان که بخواهید حذف کنید. سرانجام ، یک پوشه معمولی دیگر (اما مورد نیاز) در این سطح Venv/ است.

با استفاده از IDE

فرمان fbs run برای اجرای سریع برنامه خود بسیار عالی است. اما بسیاری از افراد ترجیح می دهند کار در IDE مانند Pycharm را انجام دهند. این به خصوص اشکال زدایی را ساده می کند.

برای اجرای یک برنامه FBS از سایر محیط ها (مانند IDE یا خط فرمان) ، شما به سادگی

  • برای فعال بودن به محیط مجازی نیاز دارید
  • SRC/Main/Python را در PythonPath خود داشته باشید و
  • اجرای SRC/Main/Python/Main. py.

بنابراین به عنوان مثال در Mac و Linux ، می توانید برنامه خود را از طریق خط فرمان از طریق اجرا کنید

(با فرض فعال بودن محیط مجازی).

در اینجا تصویری از نحوه پیکربندی PyCharm برای این کار آورده شده است:

کد پایتون شما

برای اینکه FBS آن را پیدا کند ، کد منبع Python شما باید در SRC/Main/Python/باشد. در آنجا ، به یک اسکریپت نیاز دارید که برنامه خود را با یک برنامه کاربردی شروع کند. اسکریپت پیش فرض که در SRC/Main/Python/Main. py ایجاد می شود وقتی FBS StartProject را اجرا می کنید به شرح زیر است:

مراحل 1. و 2. حداقل آنچه برای کار FBS لازم است.

از آنجا که برنامه شما در پیچیدگی رشد می کند ، احتمالاً می خواهید کد منبع آن را در چندین پرونده تقسیم کنید. در این حالت ، توصیه می شود که همه آنها را در یک بسته قرار دهید. به عنوان مثال ، اگر برنامه شما برنامه من نامیده شود ، می توان بسته را MY_APP نامید و ساختار دایرکتوری می تواند به شرح زیر باشد:

  • SRC/Main/Python/
    • my_app/
      • __init__. py
      • main. py
      • module_a. py
      • module_b. py
      • .

      اگر main. py دوباره اسکریپت است که زمینه برنامه را فوری می کند ، باید تنظیمات اصلی_مودول را در base. json به "src/main/python/my_app/main. py" تغییر دهید. این به FBS در مورد مکان جدید اطلاع می دهد.

      نکته نهایی برای برنامه های پیچیده تر: از cached_property بررسی کنید. همراه با ApplicationContext ، واقعاً می تواند به شما کمک کند تا اجزای برنامه خود را سیم کشی کنید.

      وابستگی

      بیشتر برنامه ها برای اجرای عملکرد خود از کتابخانه های اضافی استفاده می کنند. در حالت معمولی ، این به سادگی به عنوان کتابخانه نصب PIP در خط فرمان و کتابخانه واردات در کد پایتون شما ساده است. هنگامی که FBS بیانیه واردات را می بیند ، به طور خودکار وابستگی را در کنار برنامه شما بسته بندی می کند.

      بعضی اوقات ، ممکن است اتفاق بیفتد که بسته بندی اتوماتیک برای یک کتابخانه خاص کار نمی کند. یعنی FBS Run کار می کند اما اجرای خروجی FBS Frezze از بین می رود. یک علامت شایع در ویندوز گفتگوی زیر است وقتی سعی می کنید برنامه یخ زده خود را اجرا کنید:

      برای اشکال زدایی این ، پرچ م-debug را برای یخ زدن اضافه کنید:

      وقتی برنامه یخ زده خود را از خط فرمان شروع می کنید ، باید برخی از خروجی اشکال زدایی را دریافت کنید. اگر یک وارد کننده را در حال ذکر یک ماژول XYZ می بینید ، موارد زیر را به SRC/BUILD/SETERES/BASE. JSON اضافه کنید:

      اگر این به رفع مشکل وابستگی کمک نمی کند ، لطفاً به صورت آنلاین برای "Pyinstaller" جستجو کنید.(FBS از PyInstaller برای بسته بندی وابستگی ها استفاده می کند.) اگر این چیزی به وجود نیاید ، ممکن است بتوانید در ردیاب شماره Pyinstaller کمک بگیرید.

      اعلام وابستگی ها

      هنگامی که از یک کتابخانه جدید در پروژه خود استفاده می کنید ، توصیه می شود آن را به الزامات/ پوشه اضافه کنید. به عنوان مثال ، بگویید که شما در ویندوز هستید و Somelibrary را به ویندوز اضافه کرده اید. سپس می توانید الزامات/ پوشه را در کنار SRC/ ، Base. txt را در آن کپی کرده و همچنین پرونده زیر Windows. txt را در آنجا ایجاد کنید:

      مزیت این امر این است که سایر توسعه دهندگان که مخزن شما را از کنترل نسخه بررسی می کنند می توانند به سرعت تمام کتابخانه های مورد نیاز پایتون را از طریق دستور دریافت کنند:

      علاوه بر این ، برخی از دستورات FBS مانند BuildVM فقط در صورت پیروی از ساختار فوق می توانند وابستگی های شما را در نظر بگیرند.

      پرونده های منابع

      برنامه ها اغلب به پرونده های داده فراتر از کد منبع خود نیاز دارند. نمونه های بارز این تصاویر در برنامه شما نمایش داده می شوند. برخی دیگر پرونده های . qss هستند ، معادل QT از CSS.

      FBS شامل پرونده های داده برای شما بسیار آسان است. به سادگی آنها را در یکی از زیر پوشه های زیر SRC/Main/Resources/:

      • پایه/ برای پرونده های مورد نیاز در همه OSS
      • ویندوز/ برای پرونده هایی که فقط در ویندوز مورد نیاز است
      • مک/ .
      • لینوکس/.
      • قوس/ برای پرونده هایی که فقط در Arch Linux لازم است
      • فدورا/.
      • اوبونتو/.

      هنگامی که با FBS Frezze تماس می گیرید ، FBS به طور خودکار پرونده های قابل اجرا را در فهرست یخ زده برنامه خود در داخل هدف/ پوشه کپی می کند.

      برای دسترسی به یک فایل منبع از کد پایتون خود ، به سادگی با ApplicationContext#get_resource (.) تماس بگیرید. آموزش نمونه ای از این را ارائه می دهد.

      پرونده های اضافی

      علاوه بر موارد فوق ، دایرکتوری های دیگری نیز وجود دارد که می توانید از آنها برای شامل پرونده های اضافی استفاده کنید.

      پرونده ها در SRC/Freeze/Mac/،. فقط در نسخه منجمد برنامه شما گنجانده شده است.(بنابراین آنها در هنگام اجرای FBS در دسترس نیستند.) مثال متعارف آنها Info. plist است ، یک فایل متا که در مورد نام برنامه شما ، نسخه آن و غیره به MACOS می گوید.

      پوشه های SRC/Installer/Windows/،. شامل پرونده هایی برای نصب کننده خود در سیستم عامل های مختلف است. به عنوان مثال: پرونده SRC/Installer/Windows/Installer. nsi شامل اجرای نصب ویندوز است.

      تصفیه

      Info. plist ذکر شده در بالا را در نظر بگیرید. حاوی خطوط زیر است:

      $ از کجا آمده است؟پاسخ فیلتر منابع است: همانطور که FBS Info. plist را از SRC/ به هدف/ کپی می کند.، جایگزین $<.>توسط تنظیم مربوطهبرای آموزش ، APP_NAME در Base. json به شرح زیر تعریف شده است:

      بنابراین ، info. plist که به هدف Target/ شامل آموزش و نه $ نیست.

      برای جلوگیری از تعویض ناخواسته (به عنوان مثال در پرونده های تصویر) ، فیلتر منابع فقط برای پرونده های ذکر شده در تنظیمات Files_TO_Filter اعمال می شود. برای مثال به پرونده mac. json مراجعه کنید.

      محدودیت فیلتر منابع این است که در هنگام اجرای FBS اعمال نمی شود. در این حالت ، پرونده هایی که از ApplicationContext#get_resource (.) به دست می آورید حاوی مکان های بدون تغییر است.

      انتشار برنامه خود

      توضیحات فوق و آموزش منجر به ایجاد یک نصب کننده می شود. اما انتشار یک برنامه درجه تولید به چندین مرحله دیگر نیاز دارد:

      • OSS مدرن از شما خواسته است تا برنامه خود را امضا کنید. این امر هنگامی که کاربران شما آن را بارگیری و اجرا می کنند ، از هشدارهای زشت "برنامه غیرقابل اعتماد" جلوگیری می کند.
      • نصب کننده شما باید در یک سرور بارگذاری شود ، بنابراین کاربران می توانند آن را بارگیری کنند.
      • نسخه های جدید برنامه شما به طور خودکار باید به کاربران موجود منتقل شود.

      FBS هنگام اجرای دستور زیر ، تمام کارهای فوق را انجام می دهد:

      با این حال ، این دستور به چند آماده سازی نیاز دارد.

      اولین قدم نصب چند وابستگی دیگر است. برای انجام این کار ، لطفاً اجرا کنید:

      بعد ، یک حساب FBS را از طریق دستور ایجاد کنید:

      از طرف دیگر ، اگر قبلاً یک حساب کاربری دارید ، می توانید از FBS Login برای تنظیم اعتبار آن استفاده کنید.

      آماده سازی باقیمانده به سیستم عامل هدف شما بستگی دارد. آنها به طور جداگانه در زیر مورد بحث قرار می گیرند.

      پنجره ها

      به روزرسانی های خودکار هنوز در ویندوز اجرا نشده است. اگر می خواهید کد خود را امضا کنید ، لطفاً به بخش مربوطه مراجعه کنید. در غیر این صورت ، هیچ راه اندازی خاصی لازم نیست. فقط نسخه FBS را برای انتشار برنامه خود اجرا کنید.

      FBS هنوز امضاء کد یا به روزرسانی های خودکار در MAC را پیاده سازی نمی کند ، بنابراین هیچ راه اندازی ویژه ای لازم نیست. به سادگی نسخه FBS را برای انتشار برنامه خود اجرا کنید.

      بر خلاف ویندوز ، هنگام انتشار برنامه خود ، یک مورد در نظر گرفته شده است: سعی کنید آن را به عنوان نسخه قدیمی MACOS در حد امکان بسازید. این باعث می شود سازگاری برنامه شما با نسخه های قدیمی تر MACOS بهبود یابد. به عنوان مثال ، برنامه ساخته شده در MACOS 10. 10 به احتمال زیاد در 10. 14 نیز اجرا می شود ، اما راه دیگر نیست. بیشتر افراد برای اجرای نسخه های قدیمی MACOS از ماشینهای مجازی استفاده می کنند.

      لینوکس

      بر خلاف سایر سیستم عامل ها ، FBS به طور کامل امضای کد و به روزرسانی های خودکار در لینوکس را به طور کامل پیاده سازی می کند. موارد زیر به شما یک مثال حداقل اما کامل می دهد:

      پس از موارد فوق ، کاربران در اوبونتو می توانند برنامه شما را با دستورات زیر نصب کنند:

      علاوه بر این ، کاربرانی که برنامه شما را از این طریق نصب می کنند ، به طور خودکار نسخه های به روز شده را از طریق مدیر بسته بومی خود دریافت می کنند.

      می توانید از دستور gengpgkey در بالا استنباط کنید که FBS از یک کلید GPG استفاده می کند. این استاندارد برای امضای کد در لینوکس است.

      دستور بعدی ، ثبت نام ، به شما امکان می دهد یک حساب کاربری برای پس زمینه FBS ایجاد کنید. این مورد نیاز است ، بنابراین فقط شما می توانید برنامه خود را تغییر دهید.

      دستورات BuildVM و Runvm

      برنامه های ساخته شده در اوبونتو 16 معمولاً در اوبونتو 18 اجرا می شوند ، اما راه دیگر نیست. دستورات BuildVM و RunVM به شما امکان می دهد ماشین های مجازی را که نسخه های قدیمی لینوکس را اجرا می کنند ، ایجاد و راه اندازی کنید. به عنوان مثال ، Runvm Ubuntu یک ماشین مجازی را که Ubuntu را اجرا می کند ، شروع می کند. 16. ساختن برنامه خود در آنجا سازگاری آن را به حداکثر می رساند.

      استفاده از ماشینهای مجازی برای انتشار برنامه شما از مزایای دیگری برخوردار است: VM به عنوان یک محیط جدا شده خدمت می کند. این باعث می شود ساختهای شما قابل تکرار تر باشد. همچنین ، شما را از نصب ابزارهایی که فقط در هنگام انتشار مورد نیاز است ، جلوگیری می کند. و از وارد کردن کلیدهای GPG.

      دو دستور VM با استفاده از Docker اجرا می شوند. وقتی تصاویر Docker را اجرا می کنید ، این را می توانید مشاهده کنید. به عنوان مثال ، پس از BuildVM اوبونتو:

      Command BuildVM Ubuntu مطابق دستورالعمل های SRC/Build/Docker/Ubuntu/Dockerfile یک تصویر Docker ایجاد می کند. اجرای پیش فرض مراحل زیر را انجام می دهد:

      1. ابزارهای لازم مانند پایتون را نصب کنید.
      2. یک محیط مجازی را در Venv/ Directory تنظیم کنید.
      3. وابستگی های پایتون ذکر شده در الزامات/ را نصب کنید.
      4. کلید GPG برنامه خود را برای امضای کد وارد کنید.

      هنگامی که شما Runvm Ubuntu را انجام می دهید ، FBS پرونده ها را از فهرست پروژه خود در داخل ظرف سوار می کند و آن را شروع می کند. از آنجا که پرونده های شما نصب شده اند ، هرگونه تغییر خارجی که به عنوان مثال ایجاد می کنید. SRC/. بلافاصله قابل مشاهده هستندبنابراین به عنوان مثالFreeze همیشه از نسخه فعلی کد منبع خود استفاده می کند ، حتی اگر در یک ظرف اجرا شود.

      از سوی دیگر، برخی تغییرات بلافاصله در ظرف قابل مشاهده نیستند. به عنوان مثال، محیط مجازی تنها زمانی به روز می شود که شما با buildvm تماس بگیرید. بنابراین باید پس از افزودن وابستگی های پایتون، این دستور را دوباره اجرا کنید. به طور مشابه برای زمانی که کلید GPG را تنظیم یا تغییر می دهید.

      به دلیل نحوه کار داکر، runvm همیشه از حالت ایجاد شده توسط buildvm شروع می شود. این بدان معنی است که هر تغییری که در runvm ایجاد می کنید به محض تایپ exit از بین می رود. بنابراین اگرچه ممکن است وسوسه انگیز باشد که pip install را در داخل کانتینر فراخوانی کنید، اما نتایج این دستور کوتاه مدت خواهد بود. همانطور که در بالا ذکر شد، به جای آن باید وابستگی را به الزامات اضافه کنید.

      اخطار نهایی در مورد پوشه های venv/ و target/ داخل ظرف Docker اعمال می شود. برخلاف سایر فایل های پروژه مانند src/، این دو دایرکتوری فقط در کانتینر نصب نمی شوند. پوشه target/ در واقع به target/ubuntu (یا . /arch و غیره) در فهرست پروژه شما اشاره می کند. و venv/ اصلاً خارج از ظرف داکر وجود ندارد.

      انتشار بر روی چندین پلتفرم

      fbs به شما اجازه می دهد (و در واقع تشویق می کند) برنامه خود را در چندین سیستم عامل منتشر کنید. هشدار این است که دستورات fbs فقط پلتفرم فعلی را هدف قرار می دهند. به عنوان مثال، شما نمی توانید هنگام اجرای fbs در ویندوز، نصب کننده مک ایجاد کنید. راه حل این امر استفاده از ماشین های مجازی برای فراخوانی fbs در پلتفرم های مختلف است. ویدئویی از سازنده fbs نمونه هایی از این را در عمل نشان می دهد.

      یکی دیگر از راه حل های جالب اخیر استفاده از GitHub Actions برای خودکار کردن گردش کار برای همه سیستم عامل ها است. لطفاً این مخزن توسط J. F. Zhang را ببینید. یک هشدار این است که اگر از fbs Pro استفاده می کنید، باید این کار را فقط از یک مخزن خصوصی GitHub انجام دهید. در غیر این صورت، تمام دنیا می توانند اعتبارنامه حرفه ای شما را به دست آورند که به سرعت آنها را مسدود می کند.

      کد امضای حرفه ای

      امضای کد برای جلوگیری از هشدارهای سیستم عامل کاربر مبنی بر غیرقابل اعتماد بودن برنامه شما الزامی است:

      Windows Defender SmartScreen

      برای امضای کد در لینوکس، به بخش انتشار برای لینوکس در بالا مراجعه کنید. در macOS، fbs (هنوز) امضای کد را پیاده سازی نمی کند. برای دستورالعمل های مربوط به ویندوز، به زیر مراجعه کنید.

      امضای کد در ویندوز

      در ویندوز ، گواهینامه های امضای کد معمولاً به صورت پرونده . pfx می آیند. برای استفاده از آن با FBS ، آن را در SRC/Sign/Windows/Certificate. pfx قرار دهید. سپس "windows_sign_pass" را برای رمز عبور این پرونده در هر دو src/build/settings/secret. json تنظیم کنید./windows. json یا./base. json. به صورت اختیاری ، همچنین می توانید "windows_sign_server" را بر روی سرور Timestamp که باید برای امضای استفاده شود ، تنظیم کنید. به عنوان مثال: "http://sha256timestamp. ws. symantec. com/sha256/timestamp".

      در مرحله بعد باید اطمینان حاصل کنید که SignTool ویندوز دارید و در مسیر شما قرار دارد. برای دستورالعمل نحوه انجام این کار ، لطفاً اینجا را ببینید.

      پس از انجام این مراحل ، می توانید از دستورات FBS Sign و FBS Sign_Installer به ترتیب استفاده کنید تا به ترتیب کد باینری های یخ زده برنامه و نصب کننده آن را امضا کنید.

      خطای پیگیری طرفدار

      پس از نصب برنامه شما بر روی رایانه شخص دیگری ، می خواهید بدانید چه موقع خطاها (/استثنائات) در حال اجرا برنامه شما هستند. با وجود آثار پشته مرتبط ، این می تواند برای یادگیری در مورد مشکلات و رفع آنها بسیار ارزشمند باشد.

      FBS می تواند خطاهایی را که در برنامه شما رخ می دهد بارگذاری کند. این یک رابط وب برای بازرسی از استثنائات و آثار پشته به شما می دهد.

      برای فعال کردن ردیابی خطا برای برنامه خود ، یک حساب و پروژه Sentry ایجاد کنید. این به شما یک کلید DSN / مشتری شبیه به:

      این کار را به عنوان تنظیماتی در SRC/BUILD/SETERES/BASE. JSON ذخیره کنید. همچنین نام تنظیمات را به public_settings اضافه کنید. مثلا:

      بعد ، وابستگی های لازم را از طریق: نصب کنید:

      (فراموش نکنید که این وابستگی را نیز به نیازهای خود اضافه کنید/.)

      اکنون می توانید SentryExceptionHandler را به ویژگی Exception_Handlers از برنامه های کاربردی خود اضافه کنید:

      این فقط خطایی را برای فرم منجمد (یعنی کامپایل شده) برنامه شما ارسال می کند. FBS به طور خودکار تنظیم محیط را برای یا محلی برای هنگام توسعه محلی یا تولید نسخه انتشار برنامه خود تنظیم می کند. این به شما امکان می دهد این دو را در Sentry متمایز کنید.

      اغلب ، هنگام وقوع استثنا ، اطلاعات اضافی مانند سیستم عامل کاربر می خواهید. شما می توانید این کار را از طریق ویژگی . Scope از کنترل کننده استثناء Sentry تنظیم کنید. فقط پس از شروع کارآموز استثنا در دسترس است ، بنابراین شما باید از پارامتر پاسخ به تماس استفاده کنید:

      برای اطلاعات بیشتر در مورد داده های اضافی می توانید از این طریق وارد شوید ، به اسناد Sentry مراجعه کنید.

      کلیدهای مجوز طرفدار

      برنامه های رومیزی تجاری اغلب به یک طرح حفاظت از مجوز احتیاج دارند. این امر باعث می شود کاربرانی که هنوز برنامه شما را از استفاده از آن خریداری نکرده اند. وسیله نقلیه معمولی برای این کار کلیدهای مجوز است: وقتی کاربر برنامه شما را خریداری می کند ، یک کلید مجوز برای آنها ارسال می کنید که درخواست شما را باز می کند.

      FBS اجرای یک طرح مجوز منطقی ایمن را برای شما بسیار آسان می کند. برای انجام این کار ، ابتدا وابستگی های لازم پایتون را نصب کنید:

      (فراموش نکنید که این وابستگی را نیز به نیازهای خود اضافه کنید/.)

      سپس از دستور init_licensing fbs برای تولید یک جفت کلید عمومی/خصوصی استفاده کنید. این برای ایجاد و تأیید کلیدهای مجوز شما استفاده می شود:

      گردش کار به شرح زیر است:

      وقتی کاربر برنامه شما را خریداری می کند ، از طریق کد پایتون یک کلید مجوز ایجاد کنید

      بگویید کاربر خروجی بیانیه چاپ (.) فوق را در C: Prince. key ذخیره می کند. سپس برنامه شما می تواند تأیید کند که کاربر با کد زیر مجوز دارد:

      اگر کاربر کلید مجوز معتبر نداشته باشد ، این مسئله FileNotFounderRor یا fbs_runtime. licensing. invalidkey را افزایش می دهد. در غیر این صورت ، داده های کلیدی را برمی گرداند. برای اطلاعات پیش زمینه در مورد اجرای FBS ، به این مقاله مراجعه کنید.

      دستورات سفارشی

      در بعضی از مواقع ، شما ممکن است بخواهید علاوه بر موارد داخلی اجرا شده ، یخ زدن و غیره ، دستورات خود را نیز تعریف کنید. به عنوان مثال ، ممکن است بخواهید یک دستور ایجاد کنید که به طور خودکار باینری های تولید شده را در وب سایت خود بارگذاری کند.

      FBS به شما امکان می دهد دستورات سفارشی را از طریق دکوراتور command تعریف کنید. با مطالب زیر یک پرونده Build. py در کنار SRC/ Directory خود ایجاد کنید:

      سپس می توانید موارد زیر را در خط فرمان اجرا کنید:

      اما همچنین ، می توانید تمام دستورات داخلی FBS را اجرا کنید. برای مثال:

      از آنجا که اسکریپت ساخت شما پیچیده تر می شود ، توصیه می شود که آن را به دو بخش تقسیم کنید: تعاریف فرمان ("چه") را در ساخت. py و اجرای آنها ("چگونه") به SRC/Build/Python قرار دهید.(اگر از این روش استفاده می کنید ، در ابتدای ساخت. py نیز باید Src/Build/Python را به Sys. path اضافه کنید.)

      FBS از دو بسته پایتون تشکیل شده است: FBS و FBS_RUNTIME. اولین دستورات داخلی را پیاده سازی می کند. دوم حاوی منطق برای اجرای برنامه شما در رایانه های کاربران است.

      هنگامی که از FBS استفاده می کنید ، به طور معمول به کد منبع خود به FBS_Runtime مراجعه می کنید. به عنوان مثال ، پیش فرض Main. py این کار را با ApplicationContext از این بسته انجام می دهد.

      از طرف دیگر ، کد شما لزوماً نیازی به ذکر بسته FBS ندارد. با این حال ، برخی از کارکردها در این بسته در معرض اجازه تعریف دستورات سفارشی یا اصلاح رفتار موارد داخلی FBS هستند.

      کاری که شما معمولاً نمی خواهید انجام دهید این است که از اجرای برنامه خود (SRC/ Main/) به FBS مراجعه کنید. اگر اصلاً ، شما فقط باید از ساخت اسکریپت های ساخت (build. py و/یا src/build/python/) به FBS مراجعه کنید.

      برنامه کاربردی

      این کلاس نقطه اصلی تماس بین FBS و برنامه شما است. همانطور که در بالا ذکر شد ، FBS شما را فوری می کند. در ماژول fbs_runtime. application_context. pyqt6 (یا fbs_runtime. application_context. pyside6 اگر از pyside6 استفاده می کنید) نهفته است و روش ها و خصوصیات زیر را دارد:

      ApplicationContext. get_resource (*rel_path)

      این روش مسیر مطلق را به پرونده منبع با نام داده شده یا مسیر (نسبی) باز می گرداند. به عنوان مثال ، اگر SRC/Main/Resources/Base/Image. jpg دارید و با GET_RESOURCE ('Image. jpg') تماس بگیرید ، این روش مسیر مطلق را به تصویر برمی گرداند. اگر پرونده داده شده وجود نداشته باشد ، یک FileNoTfounderRor مطرح می شود.

      اجرای این روش به طور شفاف ، زیر مجموعه های مختلف Src/Main/Resources را کنترل می کند. یعنی اگر Image. jpg در هر دو SRC/Main/Resource/Base و Src/Main/Resources/Mac وجود داشته باشد و آن را در MAC صدا می کنید ، مسیر مطلق را به حالت دوم بدست می آورید.

      این روش همچنین هنگام اجرای برنامه خود از منبع (از طریق FBS Run) یا هنگامی که کاربران شما فرم کامپایل شده برنامه خود را اجرا می کنند ، هم کار می کند. در حالت اول ، مسیر SRC/Main/Resources بازگردانده می شود. در دوم ، مسیر پرونده داده شده در فهرست نصب برنامه شما. توجه داشته باشید که پرونده ها فقط در مورد دوم فیلتر می شوند.

      ApplicationContext. app

      این ویژگی شیء جهانی QAPPLICATION را برای برنامه شما نگه می دارد. هر برنامه QT GUI دقیقاً دارای چنین شیئی است. FBS تضمین می کند که به طور خودکار فوری شود.

      می توانید از این ویژگی برای دسترسی به شیء QAPPLICATION استفاده کنید. مثال متعارف این زمانی است که شما با AppCtxt. App. exec () تماس می گیرید ، همانطور که توسط FBS مورد نیاز است.

      یکی دیگر از دلایلی که این ویژگی توسط FBS در معرض دید قرار می گیرد این است که این به شما امکان می دهد آن را بازنویسی کنید. به عنوان مثال ، شما ممکن است بخواهید از یک زیر کلاس سفارشی QAPPLICATION استفاده کنید. در اینجا نحوه ادغام آن آمده است:

      برای اطلاعات بیشتر در مورد cached_property ، به زیر مراجعه کنید.

      public_settings pro

      این شیء مانند دیکته برخی از تنظیمات ساخت را در معرض دید قرار می دهد. یک مورد استفاده مشترک نمایش نسخه برنامه خود است:

      تنظیمات موجود با تنظیم "public_settings" کنترل می شود. به عنوان مثال ، در پایه پیش فرض. json:

      برای گسترش این لیست ، به سادگی آن را در یکی از پرونده های تنظیمات خود تعریف کنید ، به عنوان مثال. base. json. لازم نیست عناصر فوق را تکرار کنید زیرا FBS به طور خودکار لیست های تعریف شده در چندین پرونده تنظیمات را به هم می زند.

      انگیزه فقط ساختن برخی از تنظیمات "عمومی" این است که تنظیمات اغلب حاوی اطلاعات مخفی مانند رمزهای عبور است. ما نمی خواهیم این موارد در فرم یخ زده برنامه شما گنجانده شود.

      cached_property

      هر توسعه دهنده برنامه باید به سؤال زیر پاسخ دهد: چگونه می توانم اشیاء مختلفی را که برنامه خود را تشکیل می دهند ، سیم کشی کنم؟پاسخ FBS به این یک تعامل از کلاس ApplicationContext و cached_property است.

      FBS شما را ترغیب می کند (اما مجبور نمی شود) همه مؤلفه های موجود در زمینه برنامه خود را فوری کنید. به عنوان مثال: بگویید که یک کلاس پنجره دارید که برخی از اطلاعات را از یک پایگاه داده نمایش می دهد. زمینه برنامه شما می تواند به شرح زیر باشد:

      هنگامی که اجرا () هنگام شروع برنامه شما فراخوانی می شود ، خط اول آن به خودی خود دسترسی پیدا می کند. این کد را در تعریف ویژگی پنجره (.) اجرا می کند. این به Self. db دسترسی پیدا می کند ، که به نوبه خود کد را در تعریف DB (.) اجرا می کند. نتیجه نهایی این است که ما هر دو پایگاه داده و پنجره را فوری می کنیم ، بدون جریان طولانی کد اسپاگتی.

      با یک قدم عقب ، می بینیم که زمینه برنامه برای همه مؤلفه های برنامه شما به "خانه" تبدیل می شود. ساختن آن به مکانی (و تنها) در جایی که اجزای آن در آن فوری می شوند ، دیدن چگونگی اتصال قسمت های مختلف برنامه شما بسیار آسان است. علاوه بر این ، cached_property تضمین می کند که هر مؤلفه فقط یک بار ایجاد می شود: تماس های بعدی به همان ملک نتیجه دسترسی قبلی را برمی گرداند.

      از نظر فنی ، cached_property به سادگی یک PythonProperty است که نتایج خود را ذخیره می کند.

      داشتن یک مکان / مکانیزم اصلی برای سیم کشی اجزای سازنده یک تکنیک شناخته شده به نام تزریق وابستگی است. برای اطلاعات بیشتر ، به عنوان مثال به این مقاله مراجعه کنید.

      ماژول fbs_runtime. platform

      این ماژول چندین کارکرد را در معرض نمایش قرار می دهد که به شما امکان می دهد بستر خود را که برنامه خود را اجرا می کند تعیین کنید. نام آنها باید کاملاً توضیحی باشد:

      • is_windows ()
      • is_mac ()
      • is_linux ()
      • is_ubuntu ()
      • is_arch_linux ()
      • is_fedora ()
      • is_gnome_based ()
      • is_kde_based ()

      عملکرد دیگر علاقه بالقوه نام () است. بسته به سیستم عامل فعلی ، "ویندوز" ، "مک" یا "لینوکس" را برمی گرداند.

      دیگران

      مهمترین قسمت های API FBS در بالا توضیح داده شده است. اما عملکردهای بیشتری وجود دارد که می توانید از آنها استفاده کنید. آنها در (گسترده) نظرات در کد منبع FBS ثبت شده اند. شما می توانید هر آنچه را که نام آنها با یک زیرکانه شروع نمی شود ، در نظر بگیرید _ بخشی از API عمومی.

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : محمود استادمحمد بازدید : 66 تاريخ : يکشنبه 1 مرداد 1402 ساعت: 23:14