مدت :

۶ ساعت

قیمت : ۱۴۶,۰۰۰ تومان
LinkedIn
Twitter
Facebook
Telegram

درباره مدرس 

اطلاعات دوره

توضیحات

در آموزش KivyMD فرا می‌گیرید که چگونه یک اپلیکیشن پایتونی با کیوی و ظاهر متریال و زیبا بسازید. اما طراحی متریال چیست؟ کیوی چیست؟ و KivyMD چیست ؟ پیش از پاسخ به این پرسش‌ها توجه کنید که این بسته در واقع هم به صورت مستقل قابل استفاده است و هم بخشی از بسته جامع آموزش برنامه نویسی کیوی است. 

کیوی چیست ؟

کتابخانه کیوی یا Kivy (+) یک کتابخانه متن باز است. به کمک آن می‌توان اپلیکیشن‌هایی به زبان پایتون تولید و همزمان برای گوشی‌های هوشمند (اندروید و iOS) و سیستم‌عامل‌های دسکتاپ (ویندوز – لینوکس – مک) خروجی گرفت.

 

KivyMD چیست ؟

درست است که به کمک کیوی می‌توان پایتون را تجربه کرد. اما مشکل این است که اپلیکیشن تولید شده با کیوی زیبا نیست. در این آموزش مشکل حل شده است. به کمک کتابخانه KivyMD می‌توان به پروژه‌های Kivy ظاهری زیبا و متریال بخشید.

 

چرا این آموزش KivyMD تهیه شد؟

چندی پیش، این آموزش کیوی (+)‌ برای نخستین بار در کشور توسط هم رویش تولید و منتشر شد. استقبال از این آموزش فراتر از انتظار بود.

فراگیران این آموزش از تجربه آشنایی با کیوی و کیفیت این آموزش راضی هستند؛ اما این را هم می‌گویند که کیوی در عین قدرت و انعطاف مناسب از مشکل رابط کاربری نه چندان متعارف رنج می‌برد.

بنابراین، این آموزش KivyMD برای زیباسازی اپلیکیشن‌های کیوی تولید شد. امیدواریم این آموزش طراحی متریال با کیوی برای پیاده‌سازی ایده های شما راهگشا باشد.

 

این آموزش در یک نگاه

نخست با مفهوم طراحی متریال (Material Design) آشنا می‌شوید. سپس Kivy و KivyMD را راه اندازی می‌کنید. آموزش در محیط Pycharm و ویندوز پیش می‌رود؛ اما شما می‌توانید از IDE دلخواه استفاده کنید. همچنین می‌توانید در سیستم عامل‌های لینوکس و مک نیز کار را پیش ببرید.

سپس موضوع قالب‌دهی متریال مورد بحث قرار می‌گیرد. امکانات KivyMD را در این زمینه به خوبی درک خواهید کرد.

می‌پرسید قالب دهی متریال چیست ؟

گوگل از سال 2018 بستر را برای شخصی‌سازی قالب‌های متریال فراهم کرده است. می‌توان ضمن حفظ ماهیت متریال تغییراتی داد. می‌توان رنگ‌بندی و آیکن و فونت را تغییر داد.

یک قالب شخصی‌سازی‌شده می‌تواند بیانگر برند شما باشد. به این کار در اصطلاح، قالب‌دهی متریال (Material Theming) گویند.

همچنین مشکل فونت فارسی در کیوی مورد بحث قرار می‌گیرد. یاد می‌گیرید که راه حل مشکل زبان فارسی Kivy چیست.

در این آموزش همچنین کار با برخی از مهم‌ترین کامپوننت‌های Kivy و KivyMD را فرامی‌گیرید. با Button و TextField و Label آشنا می‌شوید. نحوه نمایش Toast و Dialog را می‌آموزید. و همچنین با طراحی تولبار (Toolbar) و منوی کشویی (Navigation Drawer) آشنا خواهید شد.

کتابخانه KivyMD مرتب در حال توسعه و دگرگونی است. در دو درس پایانی، راه‌های خودآموزی با مستندات و همچنین یک پروژه نمونه بررسی می‌شود.

 

این آموزش بی‌نظیر است زیرا:
  • طراحی متریال و ایجاد اپلیکیشن‌های زیبا با Kivy را فرامی‌گیرید.
  • برای حل مشکل فونت فارسی در کیوی روش‌هایی می‌آموزید.
  • کاوش یک کتابخانه متن باز و حتی تغییر در آن را می‌آموزید.
  • شما مشاهده کننده صرف نیستید! در این آموزش به تلاش ترغیب می‌شوید.
  • فقط یک کتابخانه را نمی‌آموزید. می‌آموزید که چطور خودتان را آموزش دهید.

 

پیشنیاز

آموزش Kivy – برنامه نویسی چندسکویی با پایتون (+)

همچنین پس از این آموزش دعوت می‌کنیم که برای جمع‌بندی دانسته‌ها آموزش پروژه محور زیر را ببینید:

آموزش پروژه محور کیوی (کار با دیتابیس و API) — ساخت یک اپ از صفر تا خروجی‌گیری (+) 

 

کلیدواژگان

کیوی چیست ؟ KivyMD چیست ؟ چرا از کیوی استفاده کنیم ؟ چگونه می‌توان با کیوی اپلیکیشن زیبا تولید کرد ؟ چگونه مشکل فونت فارسی را در کیوی حل کنیم ؟ طراحی متریال با پایتون | متریال دیزاین با کیوی | آموزش کیوی ام دی 

سرفصل مطالب

سرفصل مطالب

درس صفر: معرفی دوره

درس اول: آشنایی با KivyMD
– یک نگاه اولیه به KivyMD
– معرفی صفحه گیت هاب KivyMD
– معرفی صفحه‌های مرجع مستندات KivyMD
– سازندگان و تاریخچه توسعه KivyMD

درس دوم: متریال دیزاین چیست؟
– معرفی Material Design و مفهوم آن
– معرفی وب سایت رسمی طراحی متریال
– متریال دیزاین شامل اصول طراح است
– متریال دیزاین کامپوننت‌هایی هم پیشنهاد می‌کند
– بررسی یک نمونه از کامپوننت‌های متریال
– طراح متریال کیست و ابزار طراحی متریال چیست

درس سوم: اپلیکیشن دموی KivyMD
– کلون کردن پروژه KivyMD از گیت هاب
– نصب KivyMD با استفاده از setup.py
– اجرای اپلیکیشن Kitchen Sink
– بررسی ویجت های KivyMD در پروژه مذکور

درس چهارم: ایجاد پروژه و نصب KivyMD
– تعیین روش و ابزار برنامه نویسی پروژه پایتون
– بررسی شیوه نصب KivyMD در صفحه گیت هاب آن
– نصب کیوی و پیش‌نیازهای آن
– نصب PIL از فورک Pillow
– نصب KivyMD با استفاده از pip

درس پنجم: اولین کد KivyMD و مقایسه با Kivy
– یادآوری یک کد پایه از کیوی
– بازنویسی کد با کیوی با KivyMD
– آشنایی با کلاس MDAPP و MDLabel
– بررسی کدی برای طراحی متریال یک دکمه با کیوی پایه
– بازنویسی کد مذکور با دکمه متریال KivyMD

درس ششم: قالب‌دهی متریال – بخش اول: رنگ‌ها
– قالب دهی متریال یا Material Theming چیست؟
– آشنایی با اصول رنگ بندی اپلیکیشن در طراحی متریال
– مفهوم رنگ Primary و Secondary و Accent و Surface و Background و Error
– مفهوم رنگ های دارای پیشوند on مانند On Primary و … در طراحی متریال
– آشنایی با ویژگی theme_cls در KivyMD
– آشنایی با ویژگی primary_palette و accent_palette
– آشنایی با تنظیم hue در KivyMD
– تنظیم رنگ Text با Markup
– تعریف رنگ با پروتکل RGBA
– فراخوانی theme_cls از داخل بخش طراحی kv
– آشنایی با کلاس تعریف رنگ ها در KivyMD
– نحوه ارث بری و تعریف Rule برای ایجاد ویجت اختصاصی
– بررسی یک نمونه کد از مستندات KivyMD

درس هفتم: قالب‌دهی متریال – بخش دوم: آیکن‌ها
– مروری به System Icon و قواعد و نکات طراحی آیکن متریال در وبسایت material.io
– بررسی آیکن‌های متریال دیزاین گوگل و نحوه استفاده از آن‌ها
– بررسی وب سایت materialdesignicons که آیکن‌های متریال را ارائه کرده
– بررسی آیکن‌های متریال درونی KivyMD
– ویزگی icon برای تنظیم آیکن متریال به عنوان آیکن یک ویجت
– نحوه استفاده از آیکن اختصاصی در KivyMD
– بررسی اپلیکیشن نمونه KivyMD برای فهرست آیکن‌ها و نیز کار با Recycler

درس هشتم: قالب‌دهی متریال – بخش سوم: فونت
– مروری به قواعد طراحی فونت متریال در وب سایت material design
– استفاده از فونت های گوگل و Type system پیشنهادی متریال دیزاین
– بررسی دقیق نحوه تعریف نوع و استایل فونت ها در KivyMD
– آشنایی با theme_font_style و font_styles در ماژول theming
– راهکار تعویض پک فونت ها در KivyMD
– تغییر نوع و اندازه فونت ویجت ها به صورت موردی در KivyMD
– تعریف font_style برای MDLabel در KivyMD

درس نهم: استفاده از فونت فارسی در Kivy و KivyMD
– مشکل زبان فارسی در کیوی
– معرفی کتابخانه arabic_reshaper
– معرفی کتابخانه python_bidi
– استفاده از فونت فارسی در کیوی kivy
– استفاده از فونت فارسی در kivymd
– ایمپورت import کردن کتابخانه در استایل فایل کیوی
– جایگزینی فونت های پیش فرض کیوی با فونت فارسی
– فونت فارسی در MDLabel و MDRectangleFlatButton
– مشکل فونت فارسی در MDTextField
– معرفی کتابخانه MDTextFieldPersian
– جمع بندی فونت فارسی در کیوی و ایده پردازی

درس دهم: کار با Toast و نمایش پیام pop-up
– ;کاربرد Toast در اپلیکیشن‌ها با ذکر یک مثال
– پیاده سازی رویداد on_release برای یک دکمه
– استفاده از تابع toast در KivyMD
– نمایش toast با متن و مدت زمان دلخواه در پاسخ به کلیک دکمه

درس یازدهم: کار با Toolbar در بالا و پایین اپلیکیشن
– مروری به Appbar در طراحی متریال
– معرفی MDToolbar در KivyMD
– تنظیم آیکن منوی کشویی در تولبار
– تنظیم آیکن‌های سمت راست برای مثلا جستجو یا اشتراک گذاری
– تنظیم callback برای پاسخ به رویداد کلیک روی گزینه های تولبار
– استفاده از MDBottomAppBar برای نوار پایین صفحه
– استفاده از تنظیم دکمه مرکزی به صورت پیوسته یا شناور در تولبار پایین
– تنظیم رنگ پس زمینه و زنگ متن تولبار و آیکن های گزینه ها

درس دوازدهم: کار با Navigation Drawer
– معرفی کامپوننت Navigation Drawer یا منوی کشویی در طراحی متریال
– آشنایی با ساختار NavigationLayout و NvigationDrawer در KivyMD
– پیاده سازی یک اپلیکیشن با دو صفحه و منوی کشویی برای انتقال بین صفحه ها در کیوی و KivyMD
– قرار دادن آیکن برای گزینه های NavDraw در KivyMD
– طراحی هدر برای منوی کشویی شامل عکس برند و تیتر اپ
– بررسی Bottom Navigation و تفاوت آن با Navigation Drawer و Bottom Toolbar در کیوی

درس سیزدهم: ساخت انواع Dialog
– آشنایی با یک نمونه کد آماده از مستندات KivyMD
– آشنایی با MDDialog برای نمایش پیام به کاربر
– آشنایی با MDInputDialog برای دریافت ورودی از کاربر

درس چهاردهم: بررسی دیگر کامپوننت‌های KivyMD
– مروری بر اصول کامپوننت‌ها و آنچه یاد گرفتیم
– نکاتی پیرامون شیوه درست به کارگیری یک ابزار مثل کتابخانه KivyMD
– تمرین بررسی کامپوننت‌های KivyMD در گیت هاب و وب سایت readthedocs

درس پانزدهم: بررسی پروژه نمونه KivyMD و جمع بندی
– نکات مثبت و نحوه بررسی پروژه نمونه
– دریافت و راه اندازی پروزه Kitchen Sink
– برریس ساختار پروژه نمونه به صورت کلی
– جمع بندی دوره و نکات مهم پیرامون خود یادگیری و ادامه مسیر

نظرات (58)

58 دیدگاه برای آموزش KivyMD — ساخت اپ زیبا با کیوی و پایتون (طراحی متریال)

  1. hata.6417

    سلام استاد عزیز وقتتون بخیر.
    بنده جدیدا این آموزش رو (بسته جامع) رو خریدم و دارم یاد میگیرم. اولا ممنون از زحمات شما ثانیاً سوالی داشتم از خدمتتون.
    صفحه github مربوط به kivymd اون اپلیکیشن demo ای که شما تو ابتدای اموزش نصب و احرا کردید رو حذف کرده. میخواستم ببینم اینرو از جایه دیگه میشه گرفت و اینکه علت حذف چی بوده؟

    • مصطفی آصفی

      سلام و سپاس. امیدوارم براتون مفید باشه. ببینید گیت هاب تاریخچه داره و شما می تونید تاریخچه اتفاق های یک مخزن و حتی نسخه های قبلی رو ردگیری کنید. بیشتر در مورد گیت هاب و ریلیزهاش بخونید.
      هر چند به نظرم مشکلی نیست. الان من دیدم نمونه های جدید گذاشته شده که می تونید بررسی کنید.

  2. محمد حسینی

    سلام مهندس
    درسته که کتابخونه arabic reshaper میاد متن های فارسی رو درست میکنه.
    ولی نمیدونم چجوری direction:rtl رو اعمال کنم.
    همیشه از چپ به راست کار میکنه همه چیز.
    میشه راهنمایی کنید؟

    • مصطفی آصفی

      سلام وقت بخیر. ویژگی base_direction رو امتحان کنید و برابر با “rtl” قرار بدین.

  3. امین عباسی

    سلام و عرض ادب، میخواستم بدانم آیا کدنویسی اپ‌های کیوی با استفاده از IDE های تحت وب نظیر ژوپیتر شدنی است. من قطعه کد ساده‌ای را که در ابتدای فیلم شماره 5 با پای چارم انجام شده بود با ژوپیتر پیاده کردم با ارور زیر مواجه شدم:
    from kivy.app import App
    from kivy.uix.label import Label
    class MyKivyApp(App):
    def build(self):
    return Label(text=’Amin Abbasi will succeed!!’)
    MyKivyApp().run()

    OSError Traceback (most recent call last)
    Input In [3], in ()
    2 def build(self):
    3 return Label(text=’Amin Abbasi will succeed!!’)
    —-> 5 MyKivyApp().run()

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\site-packages\kivy\app.py:955, in App.run(self)
    952 def run(self):
    953 ”’Launches the app in standalone mode.
    954 ”’
    –> 955 self._run_prepare()
    956 runTouchApp()
    957 self._stop()

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\site-packages\kivy\app.py:924, in App._run_prepare(self)
    922 if not self.built:
    923 self.load_config()
    –> 924 self.load_kv(filename=self.kv_file)
    925 root = self.build()
    926 if root:

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\site-packages\kivy\app.py:677, in App.load_kv(self, filename)
    675 else:
    676 try:
    –> 677 default_kv_directory = dirname(getfile(self.__class__))
    678 if default_kv_directory == ”:
    679 default_kv_directory = ‘.’

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\inspect.py:785, in getfile(object)
    783 return module.__file__
    784 if object.__module__ == ‘__main__’:
    –> 785 raise OSError(‘source code not available’)
    786 raise TypeError(‘{!r} is a built-in class’.format(object))
    787 if ismethod(object):

    OSError: source code not available

    • مصطفی آصفی

      سلام به شما. راستش من در این مورد تجربه ای ندارم و به نظرم ژوپیتر محیط مناسبی برای توسعه اپلیکیشن نیست چون نیاز به پردازش سیستمی و ایمپورت از ماژول های خارجی داره. البته شاید شما نیاز ویژه ای دارین که برای اون کار مناسب باشه. این پوسته تعاملی یا Interactive Shell (+) رو که منطبق با نسخه های خاصی از کیوی هم هست بررسی کنید.

  4. عماد نوروزی (خریدار محصول)

    سلام من یک موزیک پلیر با kivymd نوشتم که لینک میگیرد و اهنگ رو دانلود میکند و در یک دایرکتوری میریزد و یکی یکی آنها را اجرا میکند برنامه در اجرای ویندوز مشکلی ندارد اما وقتی پکیج میشود چند مشکل دارد اما میدانم به اینترنت متصل است دایرکتوری ساخته میشود و توانایی نوشتن فایل روی دایرکتوری هست اما وقتی لینک از کاربر گرفته میشود فرایند دانلود اجرا نمیشه و همینطور فایل موسیقی اجرا نمیشه فکر میکنم در قسمت premission ها مشکلی هست که برنامه توانایی دریافت لینک و اجرای آهنگ رو ندارد چون به صورت پیشفرض یک اهنگ زمان اجرا برنامه دانلود میشد و در دایرکتوری ریخته میشود هنگام کلیک صدایی در نمی آید

    • مصطفی آصفی

      سلام به شما. ممکنم هست که قسمت requirements تو فایل spec نیازمندی لازم رو نداشته باشه. باید لاگ رو طوری تنظیم کنید که خطایی که دریافت می کنید رو ببینید و اینجا گزارش کنید تا بشه بهتر نظر داد.

  5. وحید احمدزاده

    با سلام و تشکر مجدد. این لینک گیت هابی که فرمودید ظاهرا از یه MDSwitch استفاده کرده نه یه switch_tab. چون مثالی تو داکیومنت نیس نحوه استفاده رو نمیدونم. یه ویژگی هم به نام first_widget وجود داره نمیدونم با این میشه تب دیفالت رو مشخص کرد یا نه.

  6. وحید احمدزاده

    سلام. وققتون بخیر. ضمن سپاس از زحمات یه سوال داشتم. من یه اپ نوشتم که سه تا تب با استفاده از MDBottomNavigation در صفحه اصلی داره. چطور میتونم از وقتی از صفحه اسپلش به صفحه اصلی میام تب دیفالت رو تغییر بدم و اولی از چپ نباشه؟

    • مصطفی آصفی

      سلام و ممون از انرژی خوبتون. می تونید از متد switch_tab (+) برای تغییر خودکار تب استفاده کنید.
      روی لینک بالا بزنید و مستندات رو که به یه مثال از گیت هاب لینک داده هم بررسی کنید.

  7. ali

    سلام من پایتون مدتی یاد گرفتم و پایتون ۳.۷ روی پای چارم دارم که باهاش عادت کردم الان تو دنیای کد هستم یعنی ورودی خروجی ها همش کد حالا میخوام یک اپ دیگشنری و اموزش زبان درست کنم برای اندروید البته برای تمرین ساخت محیط رابط گرافیکی چون روی کدهای دیگشنری کار کردم یعنی باکس روی اپ باشه که کلمه یا جمله بدهیم و در زیر در باکس پایینی معنی اون نوشته بشه ایا اموزش کیوی منو به این منظور میرسون واز طرقی با مهندسی معکوس روی اپ های دیگه میشه از کدهاش روی برنامه خودمون هم استفاده کنیم تا در زمان صرفه جویی کنیم با سپاس

    • مصطفی آصفی

      سلام وقتتون بخیر. اگه هر سه بسته کیوی رو پشت سر هم ببینید (بسته جامع کیوی (+)) با همون پروژه انتهایی دوره (اپلیکیشن نقشه گردشگری) می تونید تمرین خیلی خوبی داشته باشید. کار با دیتابیس و API و جی پی اس گوشی و کلی مباحث دیگه گفته شده که در ریز سرفصل ها در بخش توضیحات هر بسته می‌تونید بخونید.

      پی‌نوشت: کیوی برای خروجی گیری گرافیکی گوشی و دسکتاپ خیلی خوبه ولی پشتیبانیش از زبان فارسی هنوز کامل نیست. البته تو خود این بسته راهکار دادیم که احتمالا برای اپ دیکشنری که بعد از این آموزش می تونید با الهام از اپ ساخته شده ، بسازید اما برای ویجت های خاص هنوز مشکلاتی هست. مثلا File Chooser اگه داشته باشید که بخواد از سیستم فایلی رو کاربر بارگذاری کنه یه مقدار به مشکل می خورید.

  8. نصیری (خریدار محصول)

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

    • مصطفی آصفی

      سلام و ممنون از لطفتون. خوشحالم که جنبه خودآموزی دوره ها و دعوت بنده به خودکفایی کدنویس در زودترین زمان ممکن از آغاز آموزش برای شما پررنگ بوده.
      در مورد سوالتون من راستش تجربه دقیق روی این حالت ندارم ولی به نظرم همون طور که در طول همین بسته گفتیم باید ظاهرا اقدام کنید به ساخت یک کلاس سفارشی از اون ویجت با ویژگی wrapping اختصاصی. تو سورس اون ویجت مورد نظر باید بگردید و شیوه wrapping رو پیدا و شخصی سازی کنید. تو سفارشی سازی می تونید از ماژول wraping در پایتون (+) هم کمک بگیرید.

  9. حسین تفریشی (خریدار محصول)

    سلام. چند خط آخر لوگ فایل :

    Compiling ‘/home/myusser/Desktop/programsss/ccc/.buildozer/android/app/main.py’…
    Compiling ‘/home/myusser/Desktop/programsss/ccc/.buildozer/android/app/sitecustomize.py’…
    WARNING: Received a –sdk argument, but this argument is deprecated and does nothing.
    No setup.py/pyproject.toml used, copying full private data into .apk.
    Applying Java source code patches…
    Applying patch: src/patches/SDLActivity.java.patch
    Warning: failed to apply patch (exit code 1), assuming it is already applied: src/patches/SDLActivity.java.patch
    # Android packaging done!
    # APK qcsamco-0.2-arm64-v8a_armeabi-v7a-debug.apk available in the bin directory
    # Run ‘/home/myusser/.buildozer/android/platform/android-sdk/platform-tools/adb devices’
    # Cwd None
    List of devices attached

    # Application pushed.
    # Waiting for application to start.
    # Waiting for application to start.
    # Waiting for application to start.
    # Waiting for application to start.
    # Waiting for application to start.

    بعد از این هم مدام تکرار میشه و تموم نمیشه:
    # Waiting for application to start.
    .
    .
    .

    • مصطفی آصفی

      سلام به شما. حدس اولم اینه که شاید حالت توسعه دهندگی روی گوشیتون فعال نباشه. برای این که شما با کابل یک APK رو بفرستید روی گوشی و اجرا بشه همینه. این فیلم آپارات هم رویش (+) می تونه کمکتون کنه. اگرم گوشیتون پیشرفته تر بود و این موردی که تو فیلم گفتم نشد کافیه که فعال سازی developer mode رو در مورد مدل گوشی خودتون جستجو کنید.

  10. حسین تفریشی (خریدار محصول)

    سلام استاد آصفی. خیلی ممنونم بابت این دوره عالی که بعد از کیوی باید حتما دید.
    یه سوالی داشتم. من یه اپ با کیوی ام دی طراحی کردم و با بیلدوزر هم تونستم خروجی برای اندروید بگیرم بدون مشکل. اما وقتی نصبش کردم روی گوشیم، وقتی میخواست وارد اپ بشه خود به خود در میومد. حتی صفحه اول اپ رو نمیاورد و فقط مینوشت loading… بعد یهو خارج میشد.این مشکل آیا ناشی از کدهای منه یا ناشی از تنظیمات بیلدوزر میتونه باشه؟ نظر شما چیه؟ آیا اگه دوره اپ گردشگری رو ببینم (قسمت ۱۴ رو مخصوصا) مشکلم حل میشه؟
    ممنون میشم جواب بدید.

    • مصطفی آصفی

      سلام مجدد آقای تفریشی. ممنون از لطفتون. چون منشا خطای دریافتی مشخص نیست نمی تونم بگم که با دیدن دوره دیگه آیا مشکل حل میشه یا نه. همون طور که پایین هم گفتم باید لاگ بگذارین تا بتونم نظر بدم:
      buildozer -v android debug deploy run logcat > my_log.txt

  11. حسین تفریشی (خریدار محصول)

    سلام استاد. من این آموزشتون رو هم دیدم. یه اپ نوشتم و با بیلدوزر فایل apk ساختم برای گوشی. اما بعد از نصب متاسفانه اپ رو در گوشی بالا نمیاره. مشکل از کجاست؟ اگه میشه راهنماییم کنید.

    • مصطفی آصفی

      سلام آقای تفریشی. براتون خوشحالم ولی مشکلی که گفتین باید لاگ بگذارین تا بتونم نظر بدم. لاگ خطا حین اجرا رو بگیرید و بخشی که داره error یا failed رو نشون میده اینجا بنویسید تا هم فکری کنیم:
      buildozer -v android debug deploy run logcat > my_log.txt

  12. امیرحسین رنجکش (خریدار محصول)

    سلام برای عوض کردن ایتم اول (پیشفرض) در (bottom navigation) باید چیکار کنم چون در برنامه های فارسی اولین تب سمت راست هستش ولی در کیوی سوکت چپ هست باید چجوری این مشکل رو حل کنم

    • مصطفی آصفی

      سلام به شما. از سوییچ تب (این لینک) استفاده کنید تا به آیتمی که می خواید در اول کار اشاره کنید.

  13. AmirHadiNorani

    سلام برای اینکه در سایز های مختلف اندروید ریسپانسیو داشته باشیم چیکار کنيم؟؟؟
    منظورم اینکه من الان ی اپ اندروید نوشتم ولی فقط روی سایز 480*640خوب کار میکند

    • مصطفی آصفی

      سلام به شما. برای طراحی responsive در اندروید باید واحد اندازه ویجت ها رو dp و فونت ها رو sp بگذارین تا با تغییر اسکرین به صورت متناسب تغییر کنن. این راهنمای چکیده (+) رو ببینین.

      ضمنا شما تو کیوی می تونید در آغاز اجرا عرض و ارتفاع اجرای اپ رو تنظیم کنید:
      from kivy.config import Config
      Config.set(‘graphics’, ‘width’, 200)
      Config.set(‘graphics’, ‘height’, 100)

      تکه کد بالا این کار رو به صورت استاتیک و ثابت انجام میده ولی میشه پیش از اجرای این کد مثلا در اندروید با استفاده از این کد کتابخونه pyjnius (+) قبل از تکه کد بالا اول مشخصات اسکرین دستگاه کاربر رو بگیرید و بر اساس اون تنظیمات پویایی رو اعمال کنید.

      برای شبیه سازی اسکرین های با ابعاد مختلف از این ماژول اسکرین (+) در کیوی ام دی می تونید استفاده کنید تا نتیجه کار رو محک بزنید. برای مثال این دستور
      python main.py -m screen:onex,portrait
      همون طور که در آغاز کد نوشته برای شبیه سازی اسکرین با رزولوشن بالا مثل HTC oneX مناسبه.

  14. v_ahmadzadeh@hotmail.com

    سلام . وقتتون بخیر. اگر از Spyder به جای Pycharm استفاده کنیم پوشه هایی که شما در پروژه میسازید رو چطور بسازیم؟

    • مصطفی آصفی

      سلام به شما. متاسفانه بنده روی اسپایدر مهارت ندارم. ولی نباید سخت باشه. پوشه ها تو کیوی دستی هستن. با این حال ممنون میشم اگه خودتون پیش رفتید تجربتون رو بعدا اینجا مطرح کنید که بنده و دیگران هم یاد بگیریم.

  15. سعید

    استاد محترم سلام
    آیا برای طراحی صفحات در kivy md مانند visual studio سی شارپ یک IDE هست که بشه کامپوننت های material design رو بصورت drag & drop استفاده کرد و نیاز نباشه که خودم برای دیزاین هر صفحه از کد نویسی استفاده کنیم تا وقت بیشتری برای بخش منطق برنامه داشته باشیم؟

    • مصطفی آصفی

      سلام به شما. در مورد کیوی موارد پراکنده‌ای مثل این kivy studio (+) هست که می تونید امتحان کنید. تاریخ روزآمدی خوبی هم داره. منتها هنوز یک محیط توسعه رسمی تا این لحظه نداره. توصیه می کنم خوراک خبری وبسایت کیوی یا شبکه های اجتماعی اون رو دنبال کنید شاید به زودی اتفاقی بیفته. ضمنا با توجه به انتشار آموزش پای کیوت (+) این چند وقت گذشته اگه اون طور که از سوالتون پایین برمیاد نیاز به نسخه موبایل ندارین توصیه می کنم پای کیوت رو هم بررسی کنید. ابزار گرافیکی طراحی هم داره.

  16. وجیهه منصوری (خریدار محصول)

    سلام وقت بخیر من واسه دکمم یک ایونت تعریف کردم و این ارور رو میده باید چکارش کنم؟؟ File “C:\Users\roz\kivy_venv\lib\site-packages\kivy\uix\behaviors\button.py”, line 179, in on_touch_up
    self.dispatch(‘on_release’)
    File “kivy\_event.pyx”, line 709, in kivy._event.EventDispatcher.dispatch
    TypeError: ‘str’ object is not callable

    • مصطفی آصفی

      سلام به شما. ببینید این خطا داره میگه شما یک استرینگ رو می خوای به عنوان کالبک فراخوانی کنی. شاید متد رو به درستی تو کد و فایل kv ارجاع ندادین. این لینک (+) رو برای نمونه ببینید.

  17. محمدمهدی

    سلام خسته نباشید ببخشید من موقع خروجی و کار با بیلدوزر مشکل دارم. شما برای خروجی فقط یک پروژه ساده ک توش ی لیبل از نوع کیوی بود رو خروجی گرفتید ولی در نظر نگرفتید که قاعدتا ما برای خروجی از کیوی ام دی بیشتر استفاده میکنیم و کلی ویجت دیگه.من موقه خروجی به ارور های مختلفی میخورم هر کدومم با سرچ از یوتیوب استک اور فلو و ….. رفع میکنم بازم ی مشکل جدید ظاهر میشه و ارور ثابتی نیستش که بخوام اینجا مطرحش کنم ولی بنظرم مشکل اصلی اینه که شما توی داستان خروجی توضیحات کامل فایل اسپکت و نیازمندی هاش و … رو نگفتید

    • مصطفی آصفی

      سلام سلامت باشید. لطفا به درس چهاردهم آموزش پروژه محور کیوی (+) مراجعه کنید اونجا ساخت APK برای پروژه پیچیده‌تر هم گفته شده.

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

      آموزش کیوی مقدماتی (+)
      آموزش کیوی ام دی برای طراحی متریال (همین آموزش این صفحه)
      آموزش پروژه محور کیوی (+) برای جمع‌بندی که در اون یک اپ داریم که هم API رو می‌خونه و هم دیتابیس داره و هم با GPS گوشی کار می‌کنه و سرانجام از این اپ جامع خروجی اندروید می‌گیریم.

  18. وجیهه منصوری (خریدار محصول)

    سلام وقت همگی بخیر
    من تو پروژم میخوام از swiper استفاده کنم ولی اجرا نمیشه لطفا راهنمایی کنید چکار بکنم
    این ارور رو داره:
    …..:
    from kivymd.uix.swiper.swiper import MDSwiper,MDSwiperItem
    ModuleNotFoundError: No module named ‘kivymd.uix.swiper.swiper’; ‘kivymd.uix.swiper’ is not a package

    • مصطفی آصفی

      سلام به شما. خطا داره میگه که ایمپورتتون درست نیست. برای ایمپورت و استفاده درست از سویپر این صفحه از مستندات kivymd (+) یا این راهنما (+) و سورس رو با دقت بررسی کنید.

  19. رحیم خیرگو

    جای سطر اول و دوم رو عوض کردم درست شد
    استاد بکگرند list در kivy md چطور عوض میشه

    • مصطفی آصفی

      سلام و ممنون که رفع مشکل رو اطلاع دادین. در مورد دوم این لینک (+) رو بررسی کنید تا با حالت‌های مختلف تنظیم پس زمینه بتونید یه مورد مناسب بسته به ساختار طرحتون استفاده کنید.

  20. رحیم خیرگو

    سلام استاد
    من وقتی از screen استفاده می کنم مشکلی ندارم ولی وقتی از MDScreen استفاده میکنم صفحه دوم رو نمیاره و اونو به عنوان screen نمیشناسه
    کد
    :
    MDScreen:
    name:”screen2″
    radius: [25, 25, 0, 0]
    md_bg_color: app.theme_cls.primary_color
    MDIconButton:
    icon: “language-python”
    pos_hint: {“center_x”: .5, “center_y”: .5}
    on_press:root.manager.current = “screen2”
    خطا
    No Screen with name “screen2”
    مشکل در MDScreen هست با screen کار میکنه به خاطر گوشه های گرد از MDScreen استفاده میکنم

    استاد استفاده از backdrop کار درستی هست ممکن هست با خیلی گوشی ها سازگار نباشه مثل ios

  21. amir

    سلام خدمت همه علاقه مندان به پیتون و کیوی من یک افزونه درست کردم که میتونه برای شما کد های kivy و علاوه بر اون کد های kivyMD رو رنگی و هایلایت کنه و اگه دوست داشتید میتونید از گیت هاب من به این ادرس”https://github.com/amirmohammad0000/KivyMd-Snippets” این افزونه را دانلود کنید کاملا مجانی است و امیدوارم بتونه به شما هم کمک کنه

    • مصطفی آصفی

      سلام آقای کوشکیان. بنده البته آزمایش نکردم کارتون رو و امیدوارم فرصتی دست بده که کار ارزشمند شما رو بررسی کنم.
      در هر صورت تلاشتون جای آفرین داره.
      امیدوارم موفق باشید

  22. مهدیار (خریدار محصول)

    سلام
    در راستای پرسش قبلی؛
    من همین کار رو کردم و حتی کیوی Md رو حذف و دوباره نصب کردم اما باز هم همون ارور رو میده متاسفانه راه حل دیگری ندارید؟

  23. مهدیار (خریدار محصول)

    با سلام؛
    من در قسمت ششم به این ارور خوردم؛این ارور هم برای کدی هست که توی داکیومنت خود کیوی md وجود داره ،هست.در بخش تم و رنگ ها..
    راه حل چیست؟؟ با تشکر از شما

    ارور:
    [WARNING] Deprecated property “” of object “” has been set, it will be removed in a future version
    Traceback (most recent call last):
    File “E:/kivymdtu/lesson2Color/kivymd_colors12.py”, line 92, in
    Palette().run()
    File “C:\Users\mahdiyar\AppData\Roaming\Python\Python38\site-packages\kivy\app.py”, line 949, in run
    self._run_prepare()
    File “C:\Users\mahdiyar\AppData\Roaming\Python\Python38\site-packages\kivy\app.py”, line 944, in _run_prepare
    self.dispatch(‘on_start’)
    File “kivy\_event.pyx”, line 709, in kivy._event.EventDispatcher.dispatch
    File “E:/kivymdtu/lesson2Color/kivymd_colors12.py”, line 84, in on_start
    self.on_tab_switch(
    File “E:/kivymdtu/lesson2Color/kivymd_colors12.py”, line 75, in on_tab_switch
    for value_color in colors[tab_text]:
    KeyError: ”

    • مصطفی آصفی

      سلام به شما. این مشکل در نسخه جدید اما منتشر نشده KivyMD رفع شده. می تونید KivyMD رو به صورت زیر نصب کنید:
      pip install https://github.com/kivymd/KivyMD/archive/master.zip

  24. حسین مطهری فر

    سلام
    حتی اگر از وراثت هم استفاده نکنم ( class Page3(Screen در مورد Page2.nameMostZB در خروجی را چاپ می کند.
    و در مورد Page2.nameMostZB.text پیغام خطا ‘kivy.properties.ObjectProperty’ object has no attribute ‘text’ .

  25. حسین مطهری فر

    (class Page3(Page2
    (nameSummer = ObjectProperty(None

    (:def startSummer(self
    (print(Page2.nameMostZB
    پیغام میده

    وقتی مینویسم
    (print(Page2.nameMostZB.text
    پیغام میده
    ‘kivy.properties.ObjectProperty’ object has no attribute ‘text’

    چطور باید در یک کلاس، به صفت متغیر های یک کلاس دیگه دسترسی داشته باشیم؟؟

    • مصطفی آصفی

      سلام به شما.
      دقت کنید که شما نمی تونید یک اسکرین رو از اسکرین دیگه ای ارث ببرید. به جای اون باید اسکرین رو از کلاس Screen ارث ببرید.
      برای دسترسی به ویجت های یک پنجره از پنجره دیگه این نمونه کد (+) رو با دقت بررسی کنید.

  26. حسین مطهری فر

    سلام
    مشکل قبلی حل شد.
    از self.ids استفاده کردم و تونستم نتیجه را به فایل kv برگردونم.
    حالا می خوام در کلاس Screen3 از متغیر های کلاس Screen2 استفاده کنم.(با کمک وراثت)
    (class Page3(Page2
    (def __init__(self,nameSaleB,nameMostZB,nameMost1399,nameSummer
    (Page2.__init__(self,nameSaleB,nameMostZB,nameMost1399
    (def startSummer(self
    (print(Page2.nameMostZB.text
    که پیغام خطا میده
    TypeError: __init__() got an unexpected keyword argument ‘__no_builder’

  27. حسین مطهری فر

    پیرو مشکلی که عرض کردم تونستم با آبجکت پراپرتی داده ورودی کاربر را از فایل kv ، داخل فایل اصلی بیارم و محاسبات روش انجام بدم و پرینت بگیرم.
    حالا باید نتیجه محاسبات را برگردونم تو داخل فایل kv تا کاربر بتونه مثلا تو یک Label.text یا یک textinput با readonly=True ببینه.
    یعنی برعکس عمل اول . لطفا راهنمایی کنید.ممنون.

    • مصطفی آصفی

      سلام به شما. با توضیحی که دادید پیشنهاد می کنم ویژگی text اون label یا textinput رو هم به صورت یک پراپرتی تعریف و بعد پراپرتی اول رو به دومی مقید یا bind کنید.
      شما در کیوی می تونید با استفاده از setter ، تغییر یک پراپرتی رو به پراپرتی دیگری مقید کنید. این نمونه از مستندات کیوی رو ببینید.

  28. حسین مطهری فر

    سلام
    در فایل اصلی 3 تا اسکرین دارم (داخل هر اسکرین فعلا pass می باشد ) .و در فایل kv در اسکرین 2 ، 2 تا اسپینر و 2 تا اینپوت تکست که اطلاعات (عدد) را کاربر باید وارد کند. و یک باتن جهت انجام محاسبه.
    چطور باید این محاسبات انجام بشود؟ نتیجه در همان اسکرین باید نشان داده شود .
    ممنون از تدریس عالیتون .

    • مصطفی آصفی

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

      پی‌نوشت: همون طور که پیش از این هم برای دوستانتون گفتم، بنده سعی می کنم در بخش نظرات از پایه کد ننویسم تا این یک رویه نشه و فراگیران اول خودشون سعی به کدنویسی کنن.
      پی‌نوشت 2: توصیه می کنم اول کل بسته رو یک مرتبه از اول تا پایان ببینید و اجرا کنید.

  29. nimajokar (خریدار محصول)

    سلام
    من در buildozer این مشکل رو دارم و حل هم نمیشه
    https://github.com/kivy/python-for-android/issues/2417
    چه کنم؟

    • مصطفی آصفی

      سلام به شما. خطایی که دریافت می کنید (‘pyconfig.h’ file not found ) چون توضیحی از پروژه نداریم، احتمالا از ناسازگاری پایتون با یکی از کتابخانه های جانبی پروژه (شاید dlib) ناشی میشه.
      این گفتگو (+) و موارد مشابه در مورد این خطا رو بررسی کنید.

  30. بهروز

    سلام استاد
    اگر اشتباه نکنم اررور فونت دارم که پیدا نمیکنه ، درسته؟
    اگر درسته ، کجا باید این فونت رو قرار بدم ؟ در تمام قسمتهای پوشه پایتون و kivy کپی کردم فونت خودم را ، ولی نشد
    OSError: Label: File ‘font/arial.ttf’ not found

    • مصطفی آصفی

      سلام به شما.
      ظاهرا این بسته رو 30 دقیقه قبل تهیه کردید. لطفا عجله نکنید و محتوای آموزش رو با دقت ببینید. موضوع کار با فونت رو در درس هشتم مفصل توضیح دادم.

  31. amir1212

    سلام استاد
    ModuleNotFoundError: No module named ‘kivy._clock’
    من بعد از نوشتن اولین برنامه فایل رو در command prompt اجرا کردم و این مشکل رو داره و اصلا پنجره ای باز نمیشه
    لطفا راهنماییم کنید ممنون

    • مصطفی آصفی

      سلام به شما. اون پایتونی که برای کیوی استفاده می کنید اولا مطمئن بشید که نسخه 3 هست. در لینوکس معمولا مشکل همینه.
      جدای از این راهکار معمولا برای رفع این مشکل اینه که پایتون رو حذف و دوباره نصب کنید و کیوی رو هم مطابق مراحلی که در آموزش گفتم حذف و مجدد نصب کنید.

  32. فاطمه شاطری

    با سلام
    استاد من برای نصب kivymd وارد سایتی که گفتید شدم اما یکم تغییرات داشت و من سعی کردم دقیقا مثل شما انجام بدم برای همین داخل سایت نصب pil رو نداشت اما من انجام داد کامل نصب شد اما چنین warning ای هم داد:

    Retrying (Retry(total=4, connect=None, read=None, redirect=None,
    status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnect
    ionPool(host=’pypi.org’, port=443): Read timed out. (read timeout=15)”)’:
    /simple/pillow/

    • مصطفی آصفی

      سلام و پوزش از تاخیر. خطایی که شما می فرستید حاکی از قطع شدن اتصالتون هست. پروکسی مناسب استفاده کنید.
      ضمنا در مورد تغییرات من بررسی کردم بله Pillow ظاهرا نیازی نیست. همین که نسخه کیوی و پایتون رو رعایت کنید کافیه.

  33. سحر

    سلام استاد وقت به خیر
    استاد من وقتی دستور python ./setup.py install رو زدم با توجه به ویدیو سوم شما
    این خطا رو داد :

    error: Download error for https://files.pythonhosted.org/packages/da/84/53510b9429f72cf80107a2c6b6e428a40d05ca89b2bf69efc7784755299e/kivy_deps.glew-0.3.0-cp37-cp37m-win_amd64.whl#sha256=f836e249970b2e1fc0a0d1bd3716892165ee5180214c071c0f804a934c363396: The read operation timed out

    از پایتون 3.7 استفاده میکنم .

    • مصطفی آصفی

      سلام به شما. همون طور که متن پیغام اومده نتونسته فایل رو دانلود کنه. اتصالتون رو بررسی کنید و در موقع کار با Kivy یک VPN قوی باید روشن داشته باشید.

  34. amirhosseindaneshpour

    سلام. مشکل من در مبحث فارسی سازی در کیوی است. در تمامی بخش های کیوی اعم از Label و title و helper_text و hint_text . چون الان در حال زدن پروژه هستم ولی در بعضی فیلد ها به کمک arabic reshaper و bidi.algorithm فارسی سازی انجام شده ولی در بیشتر فیلد ها مشکل فارسی سازی وجود دارد.(برای اطلاعات بیشتر لینک زیر را بخوانید :https://stackoverflow.com/questions/64738662/several-fields-in-kivymd-doesnt-support-persian-arabic-characters
    اگر بنده جوابم را کااااملا در آموزش KivyMD میابم بگویید که خریداری کنم.
    تاکید میکنم اگر استاد فارسی سازی در تمامی فیلد های kivymd را توضیح میدهند بگویید خریداری کنم وگرنه خودم در بعضی از فیلد ها که مشکلی ندارد فارسی سازی را انجام داده ام

    با تشکر

    • مصطفی آصفی

      سلام به شما و ممنون از بحث خوبی که ایجاد کردید. خیر برای تمام ویجت ها در آمزوش راهکار داده نشده. البته در آموزش اشاره شد که بیاییم سورس رو بسط بدیم و یک نمونه هم اجرا شد. اما به طور کلی به فارسی سازی تمام ویجت ها پرداخته نشده. اگر شما در این زمینه به واسطه کاری که این روزها می کنید نتایج تازه ای گرفتید حتما اینجا هم به اشتراک بگذارید.

  35. سحر (خریدار محصول)

    سلام استاد
    من می خوام از یک App kivyMD که در آن از arabic_reshaper داخل بخش KV استفاده شده است را به exe تبدیل کنم که با خطا مواجه می شم لطفا راهنمایی بفرمایید:
    Traceback (most recent call last):
    File “site-packages\kivy\lang\builder.py”, line 249, in create_handler
    File “”, line 28, in
    AttributeError: module ‘arabic_reshaper’ has no attribute ‘reshape’

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “site-packages\kivy\lang\builder.py”, line 692, in _apply_rule
    File “site-packages\kivy\lang\builder.py”, line 254, in create_handler
    kivy.lang.builder.BuilderException: Parser: File “”, line 28:

    26: MDTextField:
    27: font_name:”iransans.ttf”
    kivy.lang.builder.BuilderException:

    • مصطفی آصفی

      سلام به شما. خطایی که دریافت کردید در درجه اول از خط 28 شروع شده. مطمئن بشید که ماژول و مراحل کار رو به درستی طی کردید.
      گذشته از این در موقع تولید خروجی exe دقت کنید که فایل های جانبی مثل فونت ها یا عکس ها رو باید با آدرس دهی نسبی در ماژول فراخوانی کرده باشید. عبارت relative path رو با pyinstaller جستجو کنید.

      پی نوشت: جدا از توضیح بالا در مورد خروجی exe و کار با کتابخونه arabic_reshaper بالقوه مشکل هم وجود داره. فهرست باگ ها و رفع باگ های kivymd با arabic_reshaper رو جستجو کنید. لطفا اگر نتیجه گرفتید اینجا تجربه خودتون رو به نفرات بعدی اطلاع بدین.

  36. میلاد

    سلام وقتتون به خیر
    میشه ازتون خواهش کنم، یه نگاه به این سوال بنده که در stackoverflow مطرحش کردم، بندازید. اگر پاسخش رو میدونید اینجا یا همونجا مطرح بفرمایید.
    واقعا من گیج شدم برای این مشکل که تو فارسی نویسی پیدا کردم.
    لینک سوال:
    https://stackoverflow.com/questions/63462947

    یک دنیا ممنون

  37. باقری

    سلام. در اموزش برنامه نویسی کیوی آیا میتوان یک اپلیکیشن طراحی کرد که چند صفحه داشته باشد، یعنی وقتی بر روی دکمه کلید کرد وارد یک صفحه بشه، و آموزش افزودن تصویر هم آموزش داده شده است؟

    • مصطفی آصفی

      سلام به شما. طبیعتا امکان داشتن اپلیکیشن‌های چند صفحه‌ای با استفاده از Screen Manager هست. این موضوع در بسته اول آموزش کیوی توضیح داده شده. بحث افزودن تصویر هم همین طور.
      آموزش‌های کیوی به مرور ظرف مدت حدود 9 ماه و به صورت سه دوره منتشر شد که این بسته KivyMD در واقع بسته دوم از این مجموعه‌ست. قبل از این بسته باید این آموزش (+) رو ببینید. بعد سراغ این بسته بیایید و بعد هم سراغ بسته سوم (+).
      ضمنا هر سبه بسته به صورت یکجا هم از این نشانی (+) قابل تهیه هستند.

  38. Mahtab (خریدار محصول)

    با عرض سلام. من با چنین خطایی روبرو هستم:
    C:\Users\Kavosh\Desktop\kivymd>git clone https://github.com/kivymd/KivyMD.git
    ‘git’ is not recognized as an internal or external command,
    operable program or batch file.
    ممنون میشم راهنمایی کنید.

    • مصطفی آصفی

      سلام به شما. این خطا داره می گه که شما git روی سیستمتون نصب نیست. به وبسایت گیت (+) برید و گیت رو دانلود و نصب کنید.

  39. hossein.niknam65 (خریدار محصول)

    سلام استاد گرامی
    میشه لطفاذیه اموزش کوچکدبرای اینکه اپ هامونودبه سرور متصل کنیم و آنلاین باشن بزارین

    • مصطفی آصفی

      سلام به شما. این آموزش Django REST (+) مناسب شماست. البته اول حتما فیلم معرفیش رو ببینید و اگر به طور کلی با وب در پایتون و جنگو آشنا نیستید اول این آموزش طراحی وبسایت با پایتون (+) رو ببینید بعد به سراغ Django REST برید.
      ضمنا اگر به جای نوشتن سرور قصد دارید از API های موجود استفاده کنید در این آموزش پروژه محور کیوی (+) کار با API هم توضیح داده شده.

  40. سید محمد صادقی (خریدار محصول)

    خظایی در یافت نمی کنم والی باگ دارد و باگ ان این است که هر وقت منو را می زنم و گزینه های settingیا about for us را می زنم صفحه در صفحه می شود یعنی صفحه setting با صفحه ی home قاطی می شود

    • مصطفی آصفی

      سلام به شما. به طور کلی استفاده از BottomNavigation و NavDraw همزمان مشکل ایجاد می کنه. در صورتی که قصد دارید همزمان هم منوی پایین و هم منوی کشویی داشته باشید بهتره که تولبار پایین کار کنید.

  41. سید محمد صادقی (خریدار محصول)

    سلام استاد. ببخشید می شود کد زیر را بزنید و مشکل انرا برای من حل کنید. ممنون می شوم
    from kivy.properties import ObjectProperty
    from kivy.uix.boxlayout import BoxLayout
    from kivymd.app import MDApp
    from kivy.lang import Builder

    KV: str = “””
    #:import arabic_reshaper arabic_reshaper
    #:import get_display bidi.algorithm.get_display
    #:import MDTextFieldPersian persain.MDTextFieldPersian
    :
    ScrollView:
    MDList:
    OneLineIconListItem:
    text:”setting”
    on_press:
    root.nav_drawer.set_state(“close”)
    root.screen_manager.current =”screen_3″
    IconLeftWidget:
    icon:”cogs”
    OneLineIconListItem:
    text:”about for us”
    on_press:
    root.nav_drawer.set_state(“close”)
    root.screen_manager.current =”screen_2″
    IconLeftWidget:
    icon:”folder”

    Screen:
    MDBottomNavigation:
    MDBottomNavigationItem:
    name: ‘screen 1’
    text: ‘map’
    icon: ‘map-marker-radius-outline’
    MDLabel:
    font_name:”iransans_bold.ttf”
    text:get_display(arabic_reshaper.reshape(“نقشه”))
    halign: ‘center’
    MDBottomNavigationItem:
    name: ‘screen 2’
    text: ‘home’
    icon: ‘home-outline’

    MDLabel:
    font_name:”iransans_bold.ttf”
    text:get_display(arabic_reshaper.reshape(“خانه”))
    halign: ‘center’

    MDBottomNavigationItem:
    name: ‘screen 3’
    text: ‘call’
    icon: ‘phone’

    MDLabel:
    font_name:”iransans_bold.ttf”
    text:get_display(arabic_reshaper.reshape(“تماس”))
    halign: ‘center’

    MDToolbar:
    title:”raya”
    pos_hint:{“top”:1}
    left_action_items:[[‘menu’,lambda x:nav_drawer.set_state(“open”)]]
    NavigationLayout:
    ScreenManager:
    id:screen_manager

    Screen:

    Screen:
    name:”screen_2″
    MDLabel:
    text:”go to tow”
    halign:”center”
    Screen:
    name:”screen_3″
    MDLabel:
    text:”go to tow”
    halign:”center”
    MDNavigationDrawer:
    id:nav_drawer
    ContentNavigationDrawer:
    screen_manager:screen_manager
    nav_drawer:nav_drawer
    “””

    class ContentNavigationDrawer(BoxLayout):
    nav_drawer = ObjectProperty()
    screen_manager = ObjectProperty()

    class raya(MDApp):
    def build(self):
    return Builder.load_string(KV)

    raya().run()

    • مصطفی آصفی

      سلام به شما. دوست عزیزم تمام کد رو بنده نمی‌رسم اجرا و بررسی کنم.
      خودتون اجرا کنید و متن خطایی که دریافت می‌کنید رو اینجا بگذارید تا با هم بررسی کنیم.

  42. امیر محمد کهنگی (خریدار محصول)

    ممنون استاد آصفی بابت راهنمایی و پاسخ گویی سریع تان.

  43. امیر محمد کهنگی (خریدار محصول)

    سلام استاد آصفی.
    در زمینه ی نصب ماژول ها سوالی داشتم. شما در دفعه ی اول نصب KivyMD آن را از روی سورس نصب کردید ولی روی PyCharm با استفاده از pip این کار را انجام دادید. آیا بین این دو روش (نصب از روی سورس یا pip) تفاوتی وجود دارد؟ و به نظر شما بهتر است از کدام یک استفاده شود؟
    با تشکر فراوان.

    • مصطفی آصفی

      سلام به شما. ببینید از نظر عملکردی تفاوتی نیست. فقط این دو روش هر دو گفته شده تا در موقعیت های مختلف استفاده کنید.
      نصب یک کتابخونه با دستور pip خودکار اون رو در یک محیط مجازی یا محیط پایتون اصلی سیستم قرار میده. در حالی که با کلون کردن شما می تونید در محل های دلخواه بدون قید pip سورس ها رو داشته باشید.
      مثلا اگر نیاز داشته باشید ک ویجت های kivyMD یا بخشی از اون ها رو از یک مسیر خاص فراخوانی کنید.
      ضمنا یک تفاوت زمانی اندک بین روزآمدی گیت هاب با pypi هست که باعث میشه کلون کردن در لحظه عمل کنه و آخرین نسخه رو داشته باشید. حتی اگر برنچ های دیگه رو بخواهید هم می تونید کلون کنید (به جز برنچ مستر).
      با همه این ها شما معمولا همون نصب با pip رو که ساده تر هست استفاده کنید.

  44. Rezabh (خریدار محصول)

    خسته نباشید استاد
    برای اینکه تکست اینپوت حالت ریسپانسیوش رو حفظ کنه باید چجوری بهش اندازه بدیم؟

    • مصطفی آصفی

      سلام به شما. باید دید منظورتون از واکنش گرا چی هست؟
      تغییر اندازه Widget با تغییر اندازه عرض اسکرین مثلا از حالت دسکتاپ به گوشی موبایل (این رو خود کیوی مدیریت می کنه)
      تعریف مقدار مثلا عرض به صورت درصدی (نیازی به این کار نیست چون تعریف اندازه بر حسب dp خودش این مفهوم رو در خودش داره)

  45. سید محمد صادقی

    سلام یه سوال داشم:چگونه روی Buttonیک تصویر بارگذاری کنیم

    • مصطفی آصفی

      سلام به شما. از ویژگی آیکن استفاده کنید:

      MDRectangleFlatIconButton:
      icon: “android”
      text: “Your Text”
      width: dp(250)

  46. مهزیار دهقان چناری

    با سلام و خسته نباشید خدمت استاد آصفی عزیز.
    استاد یک سوال داشتم درباره pyriod3
    نمی دونستم سوالم رو کجا مطرح کنم.
    استاد pyroid3دقیقا چیه؟ آیا برای برنامه نویسی اندرویده و ایا اگه هستش بهتر از کیوی هستش؟

    • مصطفی آصفی

      سلام به شما و می بخشید که دیر شد. درگیر مراحل پایانی انتشار آموزش میکروپایتون بودم.
      تا جایی که بنده می‌دونم Pydroid 3 یک اپلیکیشن هست. یک IDE که با نصب اون در گوشی اندروید می‌تونید با زبان پایتون و نگارش سوم اون کد بنویسید و اجرا کنید. در واقع با توجه به گسترش فرهنگ پایتون این کمکی هست که به کسانی که علاقه به برنامه نویسی دارند ولی سیستم یا لپ تاپ ندارند.

  47. امیر محمد کهنگی (خریدار محصول)

    سلام استاد آصفی.
    چند سوال درباره ی KivyMD داشتم.
    سوال اولم این است که می توان به جای اینکه پکیج های پایتون را به جای اینکه روی پایتون اصلی نصب کنیم روی PyCharm نصب کنیم و بعد با استفاده از PyCharm فایل exe استخراج کنیم( تفاوتی با استخراج فایل exe در cmd و پایتون اصلی ندارد) ؟
    سوال دومم این است که آیا استخراج فایل های exe و apk از KivyMD با استخراج فایل exe و apk از Kivy تفاوتی دارد و اینکه وقتی فایل exe می سازیم اگر از –icon خود PyInstaller فقط آیکون خود برنامه تغییر می کند و آیکون سمت چپ برنامه همان لگوی استاندارد خود Kivy یا KivyMD می‌ماند و اگر بخواهیم آیکون خودمان باشد باید آن را همراه فایل exe تحویل کاربر بدهیم و اینکه راهی وجود دارد که تمام آیکون ها را در همان فایل exe تحویل کاربر بدهیم؟
    استاد سوال آخرم این که فایل های apk که با جاوا توسعه داده می شوند با فایل هایی با Kivy یا KivyMD توسعه داده می شوند چقدر تفاوت حجم دارد و راهی وجود دارد که بتوان حجم فایل های apk استخراج شده را کم کرد؟
    ممنون.

  48. داود زنگنه

    خیر استاد بنده پایتون 3.8 پاک کردم و همان نسخه 3.7 نصب کردم بعد از اون تمامی مراحل که شما رفتید رفتم و کیوی داخل ویرچوال انو نصب کردم ظاهرا ارور قبل را نداد و الانم که دارم تست میکنم دقیقا مشابه شما داخل ویرچوال انو این کار انجام میدم که این پیغام میده اما عرض کردم وقتی بیرون از cmd روی فایل های اکزمپل کیلیک میکنم فایل اجرا میشه و کاملا کار میکنه

  49. داود زنگنه

    سلام مجدد قربان یه سوال داشتم از شما در فیلم های اموزشی فرمودید example های کیوی نصب کنیم و با اون دستوری که شما فرمودید بازی پینگ اجرا کنیم اما برای بنده ارور میده این یعنی کیوی نصب نیست؟البته وقتی روی خود فایل main دابل کلیک میکنم cmd فایل را اجرا میکنه الان واقعا نمیدونم ایراد از اینه که کیوی نصب نشده یا نه ماشین مجازی مشکل داره
    پیغامی که میده اینه :
    File “D:\python project\share\kivy-examples\tutorials\pong\main.py”, line 1, in
    import kivy
    ModuleNotFoundError: No module named ‘kivy’

    • مصطفی آصفی

      این خطا به معنی اینه که شما در محیطی که دارید فراخوانی می کنید، کیوی نصب نیست. اگه در VirtualEnv بدون خطا نصب کردید دقت کنید که برای اجرای کیوی و مثال ها هم باید اول اون ویرچوال رو فعال کنید بعد اجرا کنید.
      شما اگر موقع نصب کیوی داخل یک ویرجوال انو پایتون 3.7 نصب و بعد کیوی رو نصب کنید. بعد از بستن ویرچوال انو اگر در یک cmd دستور کیوی رو اجرا کنید چون پایتون پیش فرض سیستم شما 3.8 هست و داخل ویرچوال انو هم نیستید اصلا کیوی رو نمی شناسه.

  50. داود زنگنه

    یعنی الان من پایتون 3.8 دارم اجازه نصب کیوی نمیده؟

    • مصطفی آصفی

      بله کیوی یک باگ با پایتون 3.8 به خصوص با پای چارم داره.

  51. داود زنگنه

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

    • مصطفی آصفی

      سلام به شما. برای نصب کیوی از پایتون 3.7 استفاده کنید. یک پایتون 3.7 روی سیستم نصب کنید. بعد یک venv با این پایتون بسازید و کیوی رو روی این venv نصب کنید. آموزش رایگان نصب venv رو می تونید اینجا (+) ببینید.

  52. Rezabh (خریدار محصول)

    سلام خسته نباشید

    توی باتوم نویگیشنی که دارم واسه هر ایتم یه اسکرین مجزا تعریف کردم(با اسکرین منیجر) ولی وقتی وارد اسکرین هر ایتم میشم ترتیب باتوم نویگیشن به هم ریخته و میره پشت صفحه ولی به محض اینکه اندازه برنامه رو کوچیک و بزرگ میکنم(حالت ریسپانسیو)فورا اجزا به درستی نمایش داده میشه
    و من الان میخوام بدونم موقع بزرگ یا کوچیک شدن صفحه برنامه چجوری صفحه رفرش میشه که توی کد های خودم از اون استفاده کنم

    • مصطفی آصفی

      سلام به شما. می بخشید که دیر شد جوابتون.
      در مورد کدتون نمی تونم نظر بدم. ولی همون طور که در آموزش هم خدمتتون توضیح دادم شما به راحتی می تونید سورس Kivy و KivyMD رو در هر مورد بررسی کنید تا بفهمید که چطور رفتار می کنه. سورس کلاس‌های اسکرین و اسکرین منیجر رو در کیوی بررسی کنید تا کد مورد نظرتون برای شخصی سازی استفاده کنید (کنترل رو نگه دارید و تو در تو پیش برید).

  53. Rb (خریدار محصول)

    سلام جناب آصفی
    من یک باتوم نویگیشن دارم که میخوام وقتی روی هرکدوم از ایتم هاش کلیک شد اجزا ودکمه های تولبار هم باهاش تغیر کنه ولی موفق نشدم لطفا راهنمایی کنید
    یکبار به هرکدوم از ایتم های باتوم نویگیشن یه باکس لایوت دادم ولی توی هر کدوم یک تولبار گذاشتم ولی ارور داد که یک تولبار بیشتر نمیشه گذاشت .یکبار هم اومدم با on_tab_press هرکدوم رو تغیر بدم ولی فقط دفعه اول درست کار میکرد و دفعه های بعد ایتم های تولبار با هم قاطی میشد یعنی ایتم های صفحه اول رو به ایتم های صفه دوم اضافه میکرد
    و یک سول دیگه ایا این دوره های اموزشی گروهی ندارن که با بقیه دانشجو ها تبادل نظر کرد؟ با تشکر از این دوره های خوبتون

    • مصطفی آصفی

      سلام به شما. در مورد این نوع نویگیشن همون طور که در دوره هم اشاره کردم هر صفحه رو یک اسکرین تعریف کنید. از این نشانی (+) به عنوان نمونه کد استاندارد استفاده کنید.

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

  54. امیرمحمد بصیرت

    سلام خسته نباشید

    ایا من میتوانم در برنامه تولیدی با این app از ماژول sklearn (یا به طوری کلی الگوریتم های یادگیری ماشین) استفاده کنم؟؟

    خیلی ممنون

    • مصطفی آصفی

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

  55. M.mahdi.hamedani (خریدار محصول)

    سلام اقای اصفی
    توی کیوی یه قابلیت بود به اسم اسکرین و اسکرین منیجیر که میشد بین صفحه ها حرکت کرد
    من میخوام اینکارو توی کیوی ام دی کنم باید از چه کتابخونه ای استفاده کنم؟

    • مصطفی آصفی

      سلام به شما. دقت کنید که KivyMD چیزی جدا از کیوی نیست. برای مثال درس 12 این دوره رو ببینید. اونجا که پیاده سازی Navigation Drawer رو توضیح می دم عملا از Screen استفاده می کنم. شما همون اجزای پایه ای کیوی مثل BoxLayout و Screen و .. رو دارید و اینجا ویجت های KivyMD -که در واقع اون ها همگی در اصل از ویجت های کیوی ارث گرفته شدند- مثل MDIconButton و رو به جای Button معمولی کیوی و از این دست استفاده می کنید.

  56. امیر محمد کهنگی (خریدار محصول)

    سلام استاد .
    سوالی در زمینه ی ساخت خود KivyMD داشتم .KivyMD مجموعه ای از همان Kivy عادی است که در کنار هم قرار گرفته اند و ابزارهای متریال را به وجود آورده اند یا اینکه کد های جدیدی هستند که در کنار Kivy قرار گرفته اند ؟

    • مصطفی آصفی

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

  57. M.mahdi.hamedani (خریدار محصول)

    سلام اقای اصفی
    برای خروجی گرفتن ویندوز از کد کیوی ام دی باید چه افزونه هایی رو به فایل اسچک اضافه کنم؟
    دستور پای اینستالرش چیه؟همون مثل کیویه با فرق داره؟

    • مصطفی آصفی

      سلام به شما. اصول Pyinstaller تفاوتی نمی کنه اما بسته به پروژه ممکنه شما مواردی رو نیاز داشته باشین اضافه کنید. لطفا مستندات Pyinstaller رو در این زمینه با دقت بررسی کنید.

  58. مهزیار دهقان

    با سلام .
    برای هر برنامه نویسی لذت بخشه که توسط زبانی که یاد میگره بتونه اپ موبایل و یا اپ دکستاپ طراحی کنه و خیلی از کار های دیگه مثلا بک اند و ….
    وقتی این این اموزش جدید رو دیدم خیلی خوش حال شدم چون داشتم می رفتم که فلاتر رو یاد بگیرم .
    نمی خوام کیوی و فلاتر رو با هم مقایسه کنم شاید فلاتر بهتر باشه ولی برای من که پایتون کار کردم قطعا میام سمت کیوی ، به همین دلیل از شما کمال تشکر رو دارم به خاطر این آموزش.
    تنها سوالی که دارم اینه ایا حجم برنامه ای با کیوی می نویسم خیلی زیاده ؟

    • مصطفی آصفی

      سلام و ممنون از لطف شما. امیدوارم که شاهد پروژه های خوب و اثرگذار از شما باشم. حتما پروژه هایی که با کیوی نوشتید رو اگر ریلیز کردید اینجا معرفی کنید خوشحال میشم.
      حجم خروجی کیوی در مورد اندروید برای مثال بیشتر از حجم تولیدی با اندروید استودیو به صورت نیتیو هست اما در مورد کاربر امروزی چندان این مورد اثرگذار نیست.
      اپلیکیشنی که برای مثال در فیلم معرفی دوره در بالا خدمتتون معرفی کردم رو می تونید از گوگل پلی خودتون دریافت و بررسی کنید.

دیدگاه خود را بنویسید

نظرات کاربران در خصوص دوره 

58 دیدگاه برای آموزش KivyMD — ساخت اپ زیبا با کیوی و پایتون (طراحی متریال)

  1. hata.6417

    سلام استاد عزیز وقتتون بخیر.
    بنده جدیدا این آموزش رو (بسته جامع) رو خریدم و دارم یاد میگیرم. اولا ممنون از زحمات شما ثانیاً سوالی داشتم از خدمتتون.
    صفحه github مربوط به kivymd اون اپلیکیشن demo ای که شما تو ابتدای اموزش نصب و احرا کردید رو حذف کرده. میخواستم ببینم اینرو از جایه دیگه میشه گرفت و اینکه علت حذف چی بوده؟

    • مصطفی آصفی

      سلام و سپاس. امیدوارم براتون مفید باشه. ببینید گیت هاب تاریخچه داره و شما می تونید تاریخچه اتفاق های یک مخزن و حتی نسخه های قبلی رو ردگیری کنید. بیشتر در مورد گیت هاب و ریلیزهاش بخونید.
      هر چند به نظرم مشکلی نیست. الان من دیدم نمونه های جدید گذاشته شده که می تونید بررسی کنید.

  2. محمد حسینی

    سلام مهندس
    درسته که کتابخونه arabic reshaper میاد متن های فارسی رو درست میکنه.
    ولی نمیدونم چجوری direction:rtl رو اعمال کنم.
    همیشه از چپ به راست کار میکنه همه چیز.
    میشه راهنمایی کنید؟

    • مصطفی آصفی

      سلام وقت بخیر. ویژگی base_direction رو امتحان کنید و برابر با “rtl” قرار بدین.

  3. امین عباسی

    سلام و عرض ادب، میخواستم بدانم آیا کدنویسی اپ‌های کیوی با استفاده از IDE های تحت وب نظیر ژوپیتر شدنی است. من قطعه کد ساده‌ای را که در ابتدای فیلم شماره 5 با پای چارم انجام شده بود با ژوپیتر پیاده کردم با ارور زیر مواجه شدم:
    from kivy.app import App
    from kivy.uix.label import Label
    class MyKivyApp(App):
    def build(self):
    return Label(text=’Amin Abbasi will succeed!!’)
    MyKivyApp().run()

    OSError Traceback (most recent call last)
    Input In [3], in ()
    2 def build(self):
    3 return Label(text=’Amin Abbasi will succeed!!’)
    —-> 5 MyKivyApp().run()

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\site-packages\kivy\app.py:955, in App.run(self)
    952 def run(self):
    953 ”’Launches the app in standalone mode.
    954 ”’
    –> 955 self._run_prepare()
    956 runTouchApp()
    957 self._stop()

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\site-packages\kivy\app.py:924, in App._run_prepare(self)
    922 if not self.built:
    923 self.load_config()
    –> 924 self.load_kv(filename=self.kv_file)
    925 root = self.build()
    926 if root:

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\site-packages\kivy\app.py:677, in App.load_kv(self, filename)
    675 else:
    676 try:
    –> 677 default_kv_directory = dirname(getfile(self.__class__))
    678 if default_kv_directory == ”:
    679 default_kv_directory = ‘.’

    File E:\Program Files\ANACONDA\envs\kivyenv\lib\inspect.py:785, in getfile(object)
    783 return module.__file__
    784 if object.__module__ == ‘__main__’:
    –> 785 raise OSError(‘source code not available’)
    786 raise TypeError(‘{!r} is a built-in class’.format(object))
    787 if ismethod(object):

    OSError: source code not available

    • مصطفی آصفی

      سلام به شما. راستش من در این مورد تجربه ای ندارم و به نظرم ژوپیتر محیط مناسبی برای توسعه اپلیکیشن نیست چون نیاز به پردازش سیستمی و ایمپورت از ماژول های خارجی داره. البته شاید شما نیاز ویژه ای دارین که برای اون کار مناسب باشه. این پوسته تعاملی یا Interactive Shell (+) رو که منطبق با نسخه های خاصی از کیوی هم هست بررسی کنید.

  4. عماد نوروزی (خریدار محصول)

    سلام من یک موزیک پلیر با kivymd نوشتم که لینک میگیرد و اهنگ رو دانلود میکند و در یک دایرکتوری میریزد و یکی یکی آنها را اجرا میکند برنامه در اجرای ویندوز مشکلی ندارد اما وقتی پکیج میشود چند مشکل دارد اما میدانم به اینترنت متصل است دایرکتوری ساخته میشود و توانایی نوشتن فایل روی دایرکتوری هست اما وقتی لینک از کاربر گرفته میشود فرایند دانلود اجرا نمیشه و همینطور فایل موسیقی اجرا نمیشه فکر میکنم در قسمت premission ها مشکلی هست که برنامه توانایی دریافت لینک و اجرای آهنگ رو ندارد چون به صورت پیشفرض یک اهنگ زمان اجرا برنامه دانلود میشد و در دایرکتوری ریخته میشود هنگام کلیک صدایی در نمی آید

    • مصطفی آصفی

      سلام به شما. ممکنم هست که قسمت requirements تو فایل spec نیازمندی لازم رو نداشته باشه. باید لاگ رو طوری تنظیم کنید که خطایی که دریافت می کنید رو ببینید و اینجا گزارش کنید تا بشه بهتر نظر داد.

  5. وحید احمدزاده

    با سلام و تشکر مجدد. این لینک گیت هابی که فرمودید ظاهرا از یه MDSwitch استفاده کرده نه یه switch_tab. چون مثالی تو داکیومنت نیس نحوه استفاده رو نمیدونم. یه ویژگی هم به نام first_widget وجود داره نمیدونم با این میشه تب دیفالت رو مشخص کرد یا نه.

  6. وحید احمدزاده

    سلام. وققتون بخیر. ضمن سپاس از زحمات یه سوال داشتم. من یه اپ نوشتم که سه تا تب با استفاده از MDBottomNavigation در صفحه اصلی داره. چطور میتونم از وقتی از صفحه اسپلش به صفحه اصلی میام تب دیفالت رو تغییر بدم و اولی از چپ نباشه؟

    • مصطفی آصفی

      سلام و ممون از انرژی خوبتون. می تونید از متد switch_tab (+) برای تغییر خودکار تب استفاده کنید.
      روی لینک بالا بزنید و مستندات رو که به یه مثال از گیت هاب لینک داده هم بررسی کنید.

  7. ali

    سلام من پایتون مدتی یاد گرفتم و پایتون ۳.۷ روی پای چارم دارم که باهاش عادت کردم الان تو دنیای کد هستم یعنی ورودی خروجی ها همش کد حالا میخوام یک اپ دیگشنری و اموزش زبان درست کنم برای اندروید البته برای تمرین ساخت محیط رابط گرافیکی چون روی کدهای دیگشنری کار کردم یعنی باکس روی اپ باشه که کلمه یا جمله بدهیم و در زیر در باکس پایینی معنی اون نوشته بشه ایا اموزش کیوی منو به این منظور میرسون واز طرقی با مهندسی معکوس روی اپ های دیگه میشه از کدهاش روی برنامه خودمون هم استفاده کنیم تا در زمان صرفه جویی کنیم با سپاس

    • مصطفی آصفی

      سلام وقتتون بخیر. اگه هر سه بسته کیوی رو پشت سر هم ببینید (بسته جامع کیوی (+)) با همون پروژه انتهایی دوره (اپلیکیشن نقشه گردشگری) می تونید تمرین خیلی خوبی داشته باشید. کار با دیتابیس و API و جی پی اس گوشی و کلی مباحث دیگه گفته شده که در ریز سرفصل ها در بخش توضیحات هر بسته می‌تونید بخونید.

      پی‌نوشت: کیوی برای خروجی گیری گرافیکی گوشی و دسکتاپ خیلی خوبه ولی پشتیبانیش از زبان فارسی هنوز کامل نیست. البته تو خود این بسته راهکار دادیم که احتمالا برای اپ دیکشنری که بعد از این آموزش می تونید با الهام از اپ ساخته شده ، بسازید اما برای ویجت های خاص هنوز مشکلاتی هست. مثلا File Chooser اگه داشته باشید که بخواد از سیستم فایلی رو کاربر بارگذاری کنه یه مقدار به مشکل می خورید.

  8. نصیری (خریدار محصول)

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

    • مصطفی آصفی

      سلام و ممنون از لطفتون. خوشحالم که جنبه خودآموزی دوره ها و دعوت بنده به خودکفایی کدنویس در زودترین زمان ممکن از آغاز آموزش برای شما پررنگ بوده.
      در مورد سوالتون من راستش تجربه دقیق روی این حالت ندارم ولی به نظرم همون طور که در طول همین بسته گفتیم باید ظاهرا اقدام کنید به ساخت یک کلاس سفارشی از اون ویجت با ویژگی wrapping اختصاصی. تو سورس اون ویجت مورد نظر باید بگردید و شیوه wrapping رو پیدا و شخصی سازی کنید. تو سفارشی سازی می تونید از ماژول wraping در پایتون (+) هم کمک بگیرید.

  9. حسین تفریشی (خریدار محصول)

    سلام. چند خط آخر لوگ فایل :

    Compiling ‘/home/myusser/Desktop/programsss/ccc/.buildozer/android/app/main.py’…
    Compiling ‘/home/myusser/Desktop/programsss/ccc/.buildozer/android/app/sitecustomize.py’…
    WARNING: Received a –sdk argument, but this argument is deprecated and does nothing.
    No setup.py/pyproject.toml used, copying full private data into .apk.
    Applying Java source code patches…
    Applying patch: src/patches/SDLActivity.java.patch
    Warning: failed to apply patch (exit code 1), assuming it is already applied: src/patches/SDLActivity.java.patch
    # Android packaging done!
    # APK qcsamco-0.2-arm64-v8a_armeabi-v7a-debug.apk available in the bin directory
    # Run ‘/home/myusser/.buildozer/android/platform/android-sdk/platform-tools/adb devices’
    # Cwd None
    List of devices attached

    # Application pushed.
    # Waiting for application to start.
    # Waiting for application to start.
    # Waiting for application to start.
    # Waiting for application to start.
    # Waiting for application to start.

    بعد از این هم مدام تکرار میشه و تموم نمیشه:
    # Waiting for application to start.
    .
    .
    .

    • مصطفی آصفی

      سلام به شما. حدس اولم اینه که شاید حالت توسعه دهندگی روی گوشیتون فعال نباشه. برای این که شما با کابل یک APK رو بفرستید روی گوشی و اجرا بشه همینه. این فیلم آپارات هم رویش (+) می تونه کمکتون کنه. اگرم گوشیتون پیشرفته تر بود و این موردی که تو فیلم گفتم نشد کافیه که فعال سازی developer mode رو در مورد مدل گوشی خودتون جستجو کنید.

  10. حسین تفریشی (خریدار محصول)

    سلام استاد آصفی. خیلی ممنونم بابت این دوره عالی که بعد از کیوی باید حتما دید.
    یه سوالی داشتم. من یه اپ با کیوی ام دی طراحی کردم و با بیلدوزر هم تونستم خروجی برای اندروید بگیرم بدون مشکل. اما وقتی نصبش کردم روی گوشیم، وقتی میخواست وارد اپ بشه خود به خود در میومد. حتی صفحه اول اپ رو نمیاورد و فقط مینوشت loading… بعد یهو خارج میشد.این مشکل آیا ناشی از کدهای منه یا ناشی از تنظیمات بیلدوزر میتونه باشه؟ نظر شما چیه؟ آیا اگه دوره اپ گردشگری رو ببینم (قسمت ۱۴ رو مخصوصا) مشکلم حل میشه؟
    ممنون میشم جواب بدید.

    • مصطفی آصفی

      سلام مجدد آقای تفریشی. ممنون از لطفتون. چون منشا خطای دریافتی مشخص نیست نمی تونم بگم که با دیدن دوره دیگه آیا مشکل حل میشه یا نه. همون طور که پایین هم گفتم باید لاگ بگذارین تا بتونم نظر بدم:
      buildozer -v android debug deploy run logcat > my_log.txt

  11. حسین تفریشی (خریدار محصول)

    سلام استاد. من این آموزشتون رو هم دیدم. یه اپ نوشتم و با بیلدوزر فایل apk ساختم برای گوشی. اما بعد از نصب متاسفانه اپ رو در گوشی بالا نمیاره. مشکل از کجاست؟ اگه میشه راهنماییم کنید.

    • مصطفی آصفی

      سلام آقای تفریشی. براتون خوشحالم ولی مشکلی که گفتین باید لاگ بگذارین تا بتونم نظر بدم. لاگ خطا حین اجرا رو بگیرید و بخشی که داره error یا failed رو نشون میده اینجا بنویسید تا هم فکری کنیم:
      buildozer -v android debug deploy run logcat > my_log.txt

  12. امیرحسین رنجکش (خریدار محصول)

    سلام برای عوض کردن ایتم اول (پیشفرض) در (bottom navigation) باید چیکار کنم چون در برنامه های فارسی اولین تب سمت راست هستش ولی در کیوی سوکت چپ هست باید چجوری این مشکل رو حل کنم

    • مصطفی آصفی

      سلام به شما. از سوییچ تب (این لینک) استفاده کنید تا به آیتمی که می خواید در اول کار اشاره کنید.

  13. AmirHadiNorani

    سلام برای اینکه در سایز های مختلف اندروید ریسپانسیو داشته باشیم چیکار کنيم؟؟؟
    منظورم اینکه من الان ی اپ اندروید نوشتم ولی فقط روی سایز 480*640خوب کار میکند

    • مصطفی آصفی

      سلام به شما. برای طراحی responsive در اندروید باید واحد اندازه ویجت ها رو dp و فونت ها رو sp بگذارین تا با تغییر اسکرین به صورت متناسب تغییر کنن. این راهنمای چکیده (+) رو ببینین.

      ضمنا شما تو کیوی می تونید در آغاز اجرا عرض و ارتفاع اجرای اپ رو تنظیم کنید:
      from kivy.config import Config
      Config.set(‘graphics’, ‘width’, 200)
      Config.set(‘graphics’, ‘height’, 100)

      تکه کد بالا این کار رو به صورت استاتیک و ثابت انجام میده ولی میشه پیش از اجرای این کد مثلا در اندروید با استفاده از این کد کتابخونه pyjnius (+) قبل از تکه کد بالا اول مشخصات اسکرین دستگاه کاربر رو بگیرید و بر اساس اون تنظیمات پویایی رو اعمال کنید.

      برای شبیه سازی اسکرین های با ابعاد مختلف از این ماژول اسکرین (+) در کیوی ام دی می تونید استفاده کنید تا نتیجه کار رو محک بزنید. برای مثال این دستور
      python main.py -m screen:onex,portrait
      همون طور که در آغاز کد نوشته برای شبیه سازی اسکرین با رزولوشن بالا مثل HTC oneX مناسبه.

  14. v_ahmadzadeh@hotmail.com

    سلام . وقتتون بخیر. اگر از Spyder به جای Pycharm استفاده کنیم پوشه هایی که شما در پروژه میسازید رو چطور بسازیم؟

    • مصطفی آصفی

      سلام به شما. متاسفانه بنده روی اسپایدر مهارت ندارم. ولی نباید سخت باشه. پوشه ها تو کیوی دستی هستن. با این حال ممنون میشم اگه خودتون پیش رفتید تجربتون رو بعدا اینجا مطرح کنید که بنده و دیگران هم یاد بگیریم.

  15. سعید

    استاد محترم سلام
    آیا برای طراحی صفحات در kivy md مانند visual studio سی شارپ یک IDE هست که بشه کامپوننت های material design رو بصورت drag & drop استفاده کرد و نیاز نباشه که خودم برای دیزاین هر صفحه از کد نویسی استفاده کنیم تا وقت بیشتری برای بخش منطق برنامه داشته باشیم؟

    • مصطفی آصفی

      سلام به شما. در مورد کیوی موارد پراکنده‌ای مثل این kivy studio (+) هست که می تونید امتحان کنید. تاریخ روزآمدی خوبی هم داره. منتها هنوز یک محیط توسعه رسمی تا این لحظه نداره. توصیه می کنم خوراک خبری وبسایت کیوی یا شبکه های اجتماعی اون رو دنبال کنید شاید به زودی اتفاقی بیفته. ضمنا با توجه به انتشار آموزش پای کیوت (+) این چند وقت گذشته اگه اون طور که از سوالتون پایین برمیاد نیاز به نسخه موبایل ندارین توصیه می کنم پای کیوت رو هم بررسی کنید. ابزار گرافیکی طراحی هم داره.

  16. وجیهه منصوری (خریدار محصول)

    سلام وقت بخیر من واسه دکمم یک ایونت تعریف کردم و این ارور رو میده باید چکارش کنم؟؟ File “C:\Users\roz\kivy_venv\lib\site-packages\kivy\uix\behaviors\button.py”, line 179, in on_touch_up
    self.dispatch(‘on_release’)
    File “kivy\_event.pyx”, line 709, in kivy._event.EventDispatcher.dispatch
    TypeError: ‘str’ object is not callable

    • مصطفی آصفی

      سلام به شما. ببینید این خطا داره میگه شما یک استرینگ رو می خوای به عنوان کالبک فراخوانی کنی. شاید متد رو به درستی تو کد و فایل kv ارجاع ندادین. این لینک (+) رو برای نمونه ببینید.

  17. محمدمهدی

    سلام خسته نباشید ببخشید من موقع خروجی و کار با بیلدوزر مشکل دارم. شما برای خروجی فقط یک پروژه ساده ک توش ی لیبل از نوع کیوی بود رو خروجی گرفتید ولی در نظر نگرفتید که قاعدتا ما برای خروجی از کیوی ام دی بیشتر استفاده میکنیم و کلی ویجت دیگه.من موقه خروجی به ارور های مختلفی میخورم هر کدومم با سرچ از یوتیوب استک اور فلو و ….. رفع میکنم بازم ی مشکل جدید ظاهر میشه و ارور ثابتی نیستش که بخوام اینجا مطرحش کنم ولی بنظرم مشکل اصلی اینه که شما توی داستان خروجی توضیحات کامل فایل اسپکت و نیازمندی هاش و … رو نگفتید

    • مصطفی آصفی

      سلام سلامت باشید. لطفا به درس چهاردهم آموزش پروژه محور کیوی (+) مراجعه کنید اونجا ساخت APK برای پروژه پیچیده‌تر هم گفته شده.

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

      آموزش کیوی مقدماتی (+)
      آموزش کیوی ام دی برای طراحی متریال (همین آموزش این صفحه)
      آموزش پروژه محور کیوی (+) برای جمع‌بندی که در اون یک اپ داریم که هم API رو می‌خونه و هم دیتابیس داره و هم با GPS گوشی کار می‌کنه و سرانجام از این اپ جامع خروجی اندروید می‌گیریم.

  18. وجیهه منصوری (خریدار محصول)

    سلام وقت همگی بخیر
    من تو پروژم میخوام از swiper استفاده کنم ولی اجرا نمیشه لطفا راهنمایی کنید چکار بکنم
    این ارور رو داره:
    …..:
    from kivymd.uix.swiper.swiper import MDSwiper,MDSwiperItem
    ModuleNotFoundError: No module named ‘kivymd.uix.swiper.swiper’; ‘kivymd.uix.swiper’ is not a package

    • مصطفی آصفی

      سلام به شما. خطا داره میگه که ایمپورتتون درست نیست. برای ایمپورت و استفاده درست از سویپر این صفحه از مستندات kivymd (+) یا این راهنما (+) و سورس رو با دقت بررسی کنید.

  19. رحیم خیرگو

    جای سطر اول و دوم رو عوض کردم درست شد
    استاد بکگرند list در kivy md چطور عوض میشه

    • مصطفی آصفی

      سلام و ممنون که رفع مشکل رو اطلاع دادین. در مورد دوم این لینک (+) رو بررسی کنید تا با حالت‌های مختلف تنظیم پس زمینه بتونید یه مورد مناسب بسته به ساختار طرحتون استفاده کنید.

  20. رحیم خیرگو

    سلام استاد
    من وقتی از screen استفاده می کنم مشکلی ندارم ولی وقتی از MDScreen استفاده میکنم صفحه دوم رو نمیاره و اونو به عنوان screen نمیشناسه
    کد
    :
    MDScreen:
    name:”screen2″
    radius: [25, 25, 0, 0]
    md_bg_color: app.theme_cls.primary_color
    MDIconButton:
    icon: “language-python”
    pos_hint: {“center_x”: .5, “center_y”: .5}
    on_press:root.manager.current = “screen2”
    خطا
    No Screen with name “screen2”
    مشکل در MDScreen هست با screen کار میکنه به خاطر گوشه های گرد از MDScreen استفاده میکنم

    استاد استفاده از backdrop کار درستی هست ممکن هست با خیلی گوشی ها سازگار نباشه مثل ios

  21. amir

    سلام خدمت همه علاقه مندان به پیتون و کیوی من یک افزونه درست کردم که میتونه برای شما کد های kivy و علاوه بر اون کد های kivyMD رو رنگی و هایلایت کنه و اگه دوست داشتید میتونید از گیت هاب من به این ادرس”https://github.com/amirmohammad0000/KivyMd-Snippets” این افزونه را دانلود کنید کاملا مجانی است و امیدوارم بتونه به شما هم کمک کنه

    • مصطفی آصفی

      سلام آقای کوشکیان. بنده البته آزمایش نکردم کارتون رو و امیدوارم فرصتی دست بده که کار ارزشمند شما رو بررسی کنم.
      در هر صورت تلاشتون جای آفرین داره.
      امیدوارم موفق باشید

  22. مهدیار (خریدار محصول)

    سلام
    در راستای پرسش قبلی؛
    من همین کار رو کردم و حتی کیوی Md رو حذف و دوباره نصب کردم اما باز هم همون ارور رو میده متاسفانه راه حل دیگری ندارید؟

  23. مهدیار (خریدار محصول)

    با سلام؛
    من در قسمت ششم به این ارور خوردم؛این ارور هم برای کدی هست که توی داکیومنت خود کیوی md وجود داره ،هست.در بخش تم و رنگ ها..
    راه حل چیست؟؟ با تشکر از شما

    ارور:
    [WARNING] Deprecated property “” of object “” has been set, it will be removed in a future version
    Traceback (most recent call last):
    File “E:/kivymdtu/lesson2Color/kivymd_colors12.py”, line 92, in
    Palette().run()
    File “C:\Users\mahdiyar\AppData\Roaming\Python\Python38\site-packages\kivy\app.py”, line 949, in run
    self._run_prepare()
    File “C:\Users\mahdiyar\AppData\Roaming\Python\Python38\site-packages\kivy\app.py”, line 944, in _run_prepare
    self.dispatch(‘on_start’)
    File “kivy\_event.pyx”, line 709, in kivy._event.EventDispatcher.dispatch
    File “E:/kivymdtu/lesson2Color/kivymd_colors12.py”, line 84, in on_start
    self.on_tab_switch(
    File “E:/kivymdtu/lesson2Color/kivymd_colors12.py”, line 75, in on_tab_switch
    for value_color in colors[tab_text]:
    KeyError: ”

    • مصطفی آصفی

      سلام به شما. این مشکل در نسخه جدید اما منتشر نشده KivyMD رفع شده. می تونید KivyMD رو به صورت زیر نصب کنید:
      pip install https://github.com/kivymd/KivyMD/archive/master.zip

  24. حسین مطهری فر

    سلام
    حتی اگر از وراثت هم استفاده نکنم ( class Page3(Screen در مورد Page2.nameMostZB در خروجی را چاپ می کند.
    و در مورد Page2.nameMostZB.text پیغام خطا ‘kivy.properties.ObjectProperty’ object has no attribute ‘text’ .

  25. حسین مطهری فر

    (class Page3(Page2
    (nameSummer = ObjectProperty(None

    (:def startSummer(self
    (print(Page2.nameMostZB
    پیغام میده

    وقتی مینویسم
    (print(Page2.nameMostZB.text
    پیغام میده
    ‘kivy.properties.ObjectProperty’ object has no attribute ‘text’

    چطور باید در یک کلاس، به صفت متغیر های یک کلاس دیگه دسترسی داشته باشیم؟؟

    • مصطفی آصفی

      سلام به شما.
      دقت کنید که شما نمی تونید یک اسکرین رو از اسکرین دیگه ای ارث ببرید. به جای اون باید اسکرین رو از کلاس Screen ارث ببرید.
      برای دسترسی به ویجت های یک پنجره از پنجره دیگه این نمونه کد (+) رو با دقت بررسی کنید.

  26. حسین مطهری فر

    سلام
    مشکل قبلی حل شد.
    از self.ids استفاده کردم و تونستم نتیجه را به فایل kv برگردونم.
    حالا می خوام در کلاس Screen3 از متغیر های کلاس Screen2 استفاده کنم.(با کمک وراثت)
    (class Page3(Page2
    (def __init__(self,nameSaleB,nameMostZB,nameMost1399,nameSummer
    (Page2.__init__(self,nameSaleB,nameMostZB,nameMost1399
    (def startSummer(self
    (print(Page2.nameMostZB.text
    که پیغام خطا میده
    TypeError: __init__() got an unexpected keyword argument ‘__no_builder’

  27. حسین مطهری فر

    پیرو مشکلی که عرض کردم تونستم با آبجکت پراپرتی داده ورودی کاربر را از فایل kv ، داخل فایل اصلی بیارم و محاسبات روش انجام بدم و پرینت بگیرم.
    حالا باید نتیجه محاسبات را برگردونم تو داخل فایل kv تا کاربر بتونه مثلا تو یک Label.text یا یک textinput با readonly=True ببینه.
    یعنی برعکس عمل اول . لطفا راهنمایی کنید.ممنون.

    • مصطفی آصفی

      سلام به شما. با توضیحی که دادید پیشنهاد می کنم ویژگی text اون label یا textinput رو هم به صورت یک پراپرتی تعریف و بعد پراپرتی اول رو به دومی مقید یا bind کنید.
      شما در کیوی می تونید با استفاده از setter ، تغییر یک پراپرتی رو به پراپرتی دیگری مقید کنید. این نمونه از مستندات کیوی رو ببینید.

  28. حسین مطهری فر

    سلام
    در فایل اصلی 3 تا اسکرین دارم (داخل هر اسکرین فعلا pass می باشد ) .و در فایل kv در اسکرین 2 ، 2 تا اسپینر و 2 تا اینپوت تکست که اطلاعات (عدد) را کاربر باید وارد کند. و یک باتن جهت انجام محاسبه.
    چطور باید این محاسبات انجام بشود؟ نتیجه در همان اسکرین باید نشان داده شود .
    ممنون از تدریس عالیتون .

    • مصطفی آصفی

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

      پی‌نوشت: همون طور که پیش از این هم برای دوستانتون گفتم، بنده سعی می کنم در بخش نظرات از پایه کد ننویسم تا این یک رویه نشه و فراگیران اول خودشون سعی به کدنویسی کنن.
      پی‌نوشت 2: توصیه می کنم اول کل بسته رو یک مرتبه از اول تا پایان ببینید و اجرا کنید.

  29. nimajokar (خریدار محصول)

    سلام
    من در buildozer این مشکل رو دارم و حل هم نمیشه
    https://github.com/kivy/python-for-android/issues/2417
    چه کنم؟

    • مصطفی آصفی

      سلام به شما. خطایی که دریافت می کنید (‘pyconfig.h’ file not found ) چون توضیحی از پروژه نداریم، احتمالا از ناسازگاری پایتون با یکی از کتابخانه های جانبی پروژه (شاید dlib) ناشی میشه.
      این گفتگو (+) و موارد مشابه در مورد این خطا رو بررسی کنید.

  30. بهروز

    سلام استاد
    اگر اشتباه نکنم اررور فونت دارم که پیدا نمیکنه ، درسته؟
    اگر درسته ، کجا باید این فونت رو قرار بدم ؟ در تمام قسمتهای پوشه پایتون و kivy کپی کردم فونت خودم را ، ولی نشد
    OSError: Label: File ‘font/arial.ttf’ not found

    • مصطفی آصفی

      سلام به شما.
      ظاهرا این بسته رو 30 دقیقه قبل تهیه کردید. لطفا عجله نکنید و محتوای آموزش رو با دقت ببینید. موضوع کار با فونت رو در درس هشتم مفصل توضیح دادم.

  31. amir1212

    سلام استاد
    ModuleNotFoundError: No module named ‘kivy._clock’
    من بعد از نوشتن اولین برنامه فایل رو در command prompt اجرا کردم و این مشکل رو داره و اصلا پنجره ای باز نمیشه
    لطفا راهنماییم کنید ممنون

    • مصطفی آصفی

      سلام به شما. اون پایتونی که برای کیوی استفاده می کنید اولا مطمئن بشید که نسخه 3 هست. در لینوکس معمولا مشکل همینه.
      جدای از این راهکار معمولا برای رفع این مشکل اینه که پایتون رو حذف و دوباره نصب کنید و کیوی رو هم مطابق مراحلی که در آموزش گفتم حذف و مجدد نصب کنید.

  32. فاطمه شاطری

    با سلام
    استاد من برای نصب kivymd وارد سایتی که گفتید شدم اما یکم تغییرات داشت و من سعی کردم دقیقا مثل شما انجام بدم برای همین داخل سایت نصب pil رو نداشت اما من انجام داد کامل نصب شد اما چنین warning ای هم داد:

    Retrying (Retry(total=4, connect=None, read=None, redirect=None,
    status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnect
    ionPool(host=’pypi.org’, port=443): Read timed out. (read timeout=15)”)’:
    /simple/pillow/

    • مصطفی آصفی

      سلام و پوزش از تاخیر. خطایی که شما می فرستید حاکی از قطع شدن اتصالتون هست. پروکسی مناسب استفاده کنید.
      ضمنا در مورد تغییرات من بررسی کردم بله Pillow ظاهرا نیازی نیست. همین که نسخه کیوی و پایتون رو رعایت کنید کافیه.

  33. سحر

    سلام استاد وقت به خیر
    استاد من وقتی دستور python ./setup.py install رو زدم با توجه به ویدیو سوم شما
    این خطا رو داد :

    error: Download error for https://files.pythonhosted.org/packages/da/84/53510b9429f72cf80107a2c6b6e428a40d05ca89b2bf69efc7784755299e/kivy_deps.glew-0.3.0-cp37-cp37m-win_amd64.whl#sha256=f836e249970b2e1fc0a0d1bd3716892165ee5180214c071c0f804a934c363396: The read operation timed out

    از پایتون 3.7 استفاده میکنم .

    • مصطفی آصفی

      سلام به شما. همون طور که متن پیغام اومده نتونسته فایل رو دانلود کنه. اتصالتون رو بررسی کنید و در موقع کار با Kivy یک VPN قوی باید روشن داشته باشید.

  34. amirhosseindaneshpour

    سلام. مشکل من در مبحث فارسی سازی در کیوی است. در تمامی بخش های کیوی اعم از Label و title و helper_text و hint_text . چون الان در حال زدن پروژه هستم ولی در بعضی فیلد ها به کمک arabic reshaper و bidi.algorithm فارسی سازی انجام شده ولی در بیشتر فیلد ها مشکل فارسی سازی وجود دارد.(برای اطلاعات بیشتر لینک زیر را بخوانید :https://stackoverflow.com/questions/64738662/several-fields-in-kivymd-doesnt-support-persian-arabic-characters
    اگر بنده جوابم را کااااملا در آموزش KivyMD میابم بگویید که خریداری کنم.
    تاکید میکنم اگر استاد فارسی سازی در تمامی فیلد های kivymd را توضیح میدهند بگویید خریداری کنم وگرنه خودم در بعضی از فیلد ها که مشکلی ندارد فارسی سازی را انجام داده ام

    با تشکر

    • مصطفی آصفی

      سلام به شما و ممنون از بحث خوبی که ایجاد کردید. خیر برای تمام ویجت ها در آمزوش راهکار داده نشده. البته در آموزش اشاره شد که بیاییم سورس رو بسط بدیم و یک نمونه هم اجرا شد. اما به طور کلی به فارسی سازی تمام ویجت ها پرداخته نشده. اگر شما در این زمینه به واسطه کاری که این روزها می کنید نتایج تازه ای گرفتید حتما اینجا هم به اشتراک بگذارید.

  35. سحر (خریدار محصول)

    سلام استاد
    من می خوام از یک App kivyMD که در آن از arabic_reshaper داخل بخش KV استفاده شده است را به exe تبدیل کنم که با خطا مواجه می شم لطفا راهنمایی بفرمایید:
    Traceback (most recent call last):
    File “site-packages\kivy\lang\builder.py”, line 249, in create_handler
    File “”, line 28, in
    AttributeError: module ‘arabic_reshaper’ has no attribute ‘reshape’

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “site-packages\kivy\lang\builder.py”, line 692, in _apply_rule
    File “site-packages\kivy\lang\builder.py”, line 254, in create_handler
    kivy.lang.builder.BuilderException: Parser: File “”, line 28:

    26: MDTextField:
    27: font_name:”iransans.ttf”
    kivy.lang.builder.BuilderException:

    • مصطفی آصفی

      سلام به شما. خطایی که دریافت کردید در درجه اول از خط 28 شروع شده. مطمئن بشید که ماژول و مراحل کار رو به درستی طی کردید.
      گذشته از این در موقع تولید خروجی exe دقت کنید که فایل های جانبی مثل فونت ها یا عکس ها رو باید با آدرس دهی نسبی در ماژول فراخوانی کرده باشید. عبارت relative path رو با pyinstaller جستجو کنید.

      پی نوشت: جدا از توضیح بالا در مورد خروجی exe و کار با کتابخونه arabic_reshaper بالقوه مشکل هم وجود داره. فهرست باگ ها و رفع باگ های kivymd با arabic_reshaper رو جستجو کنید. لطفا اگر نتیجه گرفتید اینجا تجربه خودتون رو به نفرات بعدی اطلاع بدین.

  36. میلاد

    سلام وقتتون به خیر
    میشه ازتون خواهش کنم، یه نگاه به این سوال بنده که در stackoverflow مطرحش کردم، بندازید. اگر پاسخش رو میدونید اینجا یا همونجا مطرح بفرمایید.
    واقعا من گیج شدم برای این مشکل که تو فارسی نویسی پیدا کردم.
    لینک سوال:
    https://stackoverflow.com/questions/63462947

    یک دنیا ممنون

  37. باقری

    سلام. در اموزش برنامه نویسی کیوی آیا میتوان یک اپلیکیشن طراحی کرد که چند صفحه داشته باشد، یعنی وقتی بر روی دکمه کلید کرد وارد یک صفحه بشه، و آموزش افزودن تصویر هم آموزش داده شده است؟

    • مصطفی آصفی

      سلام به شما. طبیعتا امکان داشتن اپلیکیشن‌های چند صفحه‌ای با استفاده از Screen Manager هست. این موضوع در بسته اول آموزش کیوی توضیح داده شده. بحث افزودن تصویر هم همین طور.
      آموزش‌های کیوی به مرور ظرف مدت حدود 9 ماه و به صورت سه دوره منتشر شد که این بسته KivyMD در واقع بسته دوم از این مجموعه‌ست. قبل از این بسته باید این آموزش (+) رو ببینید. بعد سراغ این بسته بیایید و بعد هم سراغ بسته سوم (+).
      ضمنا هر سبه بسته به صورت یکجا هم از این نشانی (+) قابل تهیه هستند.

  38. Mahtab (خریدار محصول)

    با عرض سلام. من با چنین خطایی روبرو هستم:
    C:\Users\Kavosh\Desktop\kivymd>git clone https://github.com/kivymd/KivyMD.git
    ‘git’ is not recognized as an internal or external command,
    operable program or batch file.
    ممنون میشم راهنمایی کنید.

    • مصطفی آصفی

      سلام به شما. این خطا داره می گه که شما git روی سیستمتون نصب نیست. به وبسایت گیت (+) برید و گیت رو دانلود و نصب کنید.

  39. hossein.niknam65 (خریدار محصول)

    سلام استاد گرامی
    میشه لطفاذیه اموزش کوچکدبرای اینکه اپ هامونودبه سرور متصل کنیم و آنلاین باشن بزارین

    • مصطفی آصفی

      سلام به شما. این آموزش Django REST (+) مناسب شماست. البته اول حتما فیلم معرفیش رو ببینید و اگر به طور کلی با وب در پایتون و جنگو آشنا نیستید اول این آموزش طراحی وبسایت با پایتون (+) رو ببینید بعد به سراغ Django REST برید.
      ضمنا اگر به جای نوشتن سرور قصد دارید از API های موجود استفاده کنید در این آموزش پروژه محور کیوی (+) کار با API هم توضیح داده شده.

  40. سید محمد صادقی (خریدار محصول)

    خظایی در یافت نمی کنم والی باگ دارد و باگ ان این است که هر وقت منو را می زنم و گزینه های settingیا about for us را می زنم صفحه در صفحه می شود یعنی صفحه setting با صفحه ی home قاطی می شود

    • مصطفی آصفی

      سلام به شما. به طور کلی استفاده از BottomNavigation و NavDraw همزمان مشکل ایجاد می کنه. در صورتی که قصد دارید همزمان هم منوی پایین و هم منوی کشویی داشته باشید بهتره که تولبار پایین کار کنید.

  41. سید محمد صادقی (خریدار محصول)

    سلام استاد. ببخشید می شود کد زیر را بزنید و مشکل انرا برای من حل کنید. ممنون می شوم
    from kivy.properties import ObjectProperty
    from kivy.uix.boxlayout import BoxLayout
    from kivymd.app import MDApp
    from kivy.lang import Builder

    KV: str = “””
    #:import arabic_reshaper arabic_reshaper
    #:import get_display bidi.algorithm.get_display
    #:import MDTextFieldPersian persain.MDTextFieldPersian
    :
    ScrollView:
    MDList:
    OneLineIconListItem:
    text:”setting”
    on_press:
    root.nav_drawer.set_state(“close”)
    root.screen_manager.current =”screen_3″
    IconLeftWidget:
    icon:”cogs”
    OneLineIconListItem:
    text:”about for us”
    on_press:
    root.nav_drawer.set_state(“close”)
    root.screen_manager.current =”screen_2″
    IconLeftWidget:
    icon:”folder”

    Screen:
    MDBottomNavigation:
    MDBottomNavigationItem:
    name: ‘screen 1’
    text: ‘map’
    icon: ‘map-marker-radius-outline’
    MDLabel:
    font_name:”iransans_bold.ttf”
    text:get_display(arabic_reshaper.reshape(“نقشه”))
    halign: ‘center’
    MDBottomNavigationItem:
    name: ‘screen 2’
    text: ‘home’
    icon: ‘home-outline’

    MDLabel:
    font_name:”iransans_bold.ttf”
    text:get_display(arabic_reshaper.reshape(“خانه”))
    halign: ‘center’

    MDBottomNavigationItem:
    name: ‘screen 3’
    text: ‘call’
    icon: ‘phone’

    MDLabel:
    font_name:”iransans_bold.ttf”
    text:get_display(arabic_reshaper.reshape(“تماس”))
    halign: ‘center’

    MDToolbar:
    title:”raya”
    pos_hint:{“top”:1}
    left_action_items:[[‘menu’,lambda x:nav_drawer.set_state(“open”)]]
    NavigationLayout:
    ScreenManager:
    id:screen_manager

    Screen:

    Screen:
    name:”screen_2″
    MDLabel:
    text:”go to tow”
    halign:”center”
    Screen:
    name:”screen_3″
    MDLabel:
    text:”go to tow”
    halign:”center”
    MDNavigationDrawer:
    id:nav_drawer
    ContentNavigationDrawer:
    screen_manager:screen_manager
    nav_drawer:nav_drawer
    “””

    class ContentNavigationDrawer(BoxLayout):
    nav_drawer = ObjectProperty()
    screen_manager = ObjectProperty()

    class raya(MDApp):
    def build(self):
    return Builder.load_string(KV)

    raya().run()

    • مصطفی آصفی

      سلام به شما. دوست عزیزم تمام کد رو بنده نمی‌رسم اجرا و بررسی کنم.
      خودتون اجرا کنید و متن خطایی که دریافت می‌کنید رو اینجا بگذارید تا با هم بررسی کنیم.

  42. امیر محمد کهنگی (خریدار محصول)

    ممنون استاد آصفی بابت راهنمایی و پاسخ گویی سریع تان.

  43. امیر محمد کهنگی (خریدار محصول)

    سلام استاد آصفی.
    در زمینه ی نصب ماژول ها سوالی داشتم. شما در دفعه ی اول نصب KivyMD آن را از روی سورس نصب کردید ولی روی PyCharm با استفاده از pip این کار را انجام دادید. آیا بین این دو روش (نصب از روی سورس یا pip) تفاوتی وجود دارد؟ و به نظر شما بهتر است از کدام یک استفاده شود؟
    با تشکر فراوان.

    • مصطفی آصفی

      سلام به شما. ببینید از نظر عملکردی تفاوتی نیست. فقط این دو روش هر دو گفته شده تا در موقعیت های مختلف استفاده کنید.
      نصب یک کتابخونه با دستور pip خودکار اون رو در یک محیط مجازی یا محیط پایتون اصلی سیستم قرار میده. در حالی که با کلون کردن شما می تونید در محل های دلخواه بدون قید pip سورس ها رو داشته باشید.
      مثلا اگر نیاز داشته باشید ک ویجت های kivyMD یا بخشی از اون ها رو از یک مسیر خاص فراخوانی کنید.
      ضمنا یک تفاوت زمانی اندک بین روزآمدی گیت هاب با pypi هست که باعث میشه کلون کردن در لحظه عمل کنه و آخرین نسخه رو داشته باشید. حتی اگر برنچ های دیگه رو بخواهید هم می تونید کلون کنید (به جز برنچ مستر).
      با همه این ها شما معمولا همون نصب با pip رو که ساده تر هست استفاده کنید.

  44. Rezabh (خریدار محصول)

    خسته نباشید استاد
    برای اینکه تکست اینپوت حالت ریسپانسیوش رو حفظ کنه باید چجوری بهش اندازه بدیم؟

    • مصطفی آصفی

      سلام به شما. باید دید منظورتون از واکنش گرا چی هست؟
      تغییر اندازه Widget با تغییر اندازه عرض اسکرین مثلا از حالت دسکتاپ به گوشی موبایل (این رو خود کیوی مدیریت می کنه)
      تعریف مقدار مثلا عرض به صورت درصدی (نیازی به این کار نیست چون تعریف اندازه بر حسب dp خودش این مفهوم رو در خودش داره)

  45. سید محمد صادقی

    سلام یه سوال داشم:چگونه روی Buttonیک تصویر بارگذاری کنیم

    • مصطفی آصفی

      سلام به شما. از ویژگی آیکن استفاده کنید:

      MDRectangleFlatIconButton:
      icon: “android”
      text: “Your Text”
      width: dp(250)

  46. مهزیار دهقان چناری

    با سلام و خسته نباشید خدمت استاد آصفی عزیز.
    استاد یک سوال داشتم درباره pyriod3
    نمی دونستم سوالم رو کجا مطرح کنم.
    استاد pyroid3دقیقا چیه؟ آیا برای برنامه نویسی اندرویده و ایا اگه هستش بهتر از کیوی هستش؟

    • مصطفی آصفی

      سلام به شما و می بخشید که دیر شد. درگیر مراحل پایانی انتشار آموزش میکروپایتون بودم.
      تا جایی که بنده می‌دونم Pydroid 3 یک اپلیکیشن هست. یک IDE که با نصب اون در گوشی اندروید می‌تونید با زبان پایتون و نگارش سوم اون کد بنویسید و اجرا کنید. در واقع با توجه به گسترش فرهنگ پایتون این کمکی هست که به کسانی که علاقه به برنامه نویسی دارند ولی سیستم یا لپ تاپ ندارند.

  47. امیر محمد کهنگی (خریدار محصول)

    سلام استاد آصفی.
    چند سوال درباره ی KivyMD داشتم.
    سوال اولم این است که می توان به جای اینکه پکیج های پایتون را به جای اینکه روی پایتون اصلی نصب کنیم روی PyCharm نصب کنیم و بعد با استفاده از PyCharm فایل exe استخراج کنیم( تفاوتی با استخراج فایل exe در cmd و پایتون اصلی ندارد) ؟
    سوال دومم این است که آیا استخراج فایل های exe و apk از KivyMD با استخراج فایل exe و apk از Kivy تفاوتی دارد و اینکه وقتی فایل exe می سازیم اگر از –icon خود PyInstaller فقط آیکون خود برنامه تغییر می کند و آیکون سمت چپ برنامه همان لگوی استاندارد خود Kivy یا KivyMD می‌ماند و اگر بخواهیم آیکون خودمان باشد باید آن را همراه فایل exe تحویل کاربر بدهیم و اینکه راهی وجود دارد که تمام آیکون ها را در همان فایل exe تحویل کاربر بدهیم؟
    استاد سوال آخرم این که فایل های apk که با جاوا توسعه داده می شوند با فایل هایی با Kivy یا KivyMD توسعه داده می شوند چقدر تفاوت حجم دارد و راهی وجود دارد که بتوان حجم فایل های apk استخراج شده را کم کرد؟
    ممنون.

  48. داود زنگنه

    خیر استاد بنده پایتون 3.8 پاک کردم و همان نسخه 3.7 نصب کردم بعد از اون تمامی مراحل که شما رفتید رفتم و کیوی داخل ویرچوال انو نصب کردم ظاهرا ارور قبل را نداد و الانم که دارم تست میکنم دقیقا مشابه شما داخل ویرچوال انو این کار انجام میدم که این پیغام میده اما عرض کردم وقتی بیرون از cmd روی فایل های اکزمپل کیلیک میکنم فایل اجرا میشه و کاملا کار میکنه

  49. داود زنگنه

    سلام مجدد قربان یه سوال داشتم از شما در فیلم های اموزشی فرمودید example های کیوی نصب کنیم و با اون دستوری که شما فرمودید بازی پینگ اجرا کنیم اما برای بنده ارور میده این یعنی کیوی نصب نیست؟البته وقتی روی خود فایل main دابل کلیک میکنم cmd فایل را اجرا میکنه الان واقعا نمیدونم ایراد از اینه که کیوی نصب نشده یا نه ماشین مجازی مشکل داره
    پیغامی که میده اینه :
    File “D:\python project\share\kivy-examples\tutorials\pong\main.py”, line 1, in
    import kivy
    ModuleNotFoundError: No module named ‘kivy’

    • مصطفی آصفی

      این خطا به معنی اینه که شما در محیطی که دارید فراخوانی می کنید، کیوی نصب نیست. اگه در VirtualEnv بدون خطا نصب کردید دقت کنید که برای اجرای کیوی و مثال ها هم باید اول اون ویرچوال رو فعال کنید بعد اجرا کنید.
      شما اگر موقع نصب کیوی داخل یک ویرجوال انو پایتون 3.7 نصب و بعد کیوی رو نصب کنید. بعد از بستن ویرچوال انو اگر در یک cmd دستور کیوی رو اجرا کنید چون پایتون پیش فرض سیستم شما 3.8 هست و داخل ویرچوال انو هم نیستید اصلا کیوی رو نمی شناسه.

  50. داود زنگنه

    یعنی الان من پایتون 3.8 دارم اجازه نصب کیوی نمیده؟

    • مصطفی آصفی

      بله کیوی یک باگ با پایتون 3.8 به خصوص با پای چارم داره.

  51. داود زنگنه

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

    • مصطفی آصفی

      سلام به شما. برای نصب کیوی از پایتون 3.7 استفاده کنید. یک پایتون 3.7 روی سیستم نصب کنید. بعد یک venv با این پایتون بسازید و کیوی رو روی این venv نصب کنید. آموزش رایگان نصب venv رو می تونید اینجا (+) ببینید.

  52. Rezabh (خریدار محصول)

    سلام خسته نباشید

    توی باتوم نویگیشنی که دارم واسه هر ایتم یه اسکرین مجزا تعریف کردم(با اسکرین منیجر) ولی وقتی وارد اسکرین هر ایتم میشم ترتیب باتوم نویگیشن به هم ریخته و میره پشت صفحه ولی به محض اینکه اندازه برنامه رو کوچیک و بزرگ میکنم(حالت ریسپانسیو)فورا اجزا به درستی نمایش داده میشه
    و من الان میخوام بدونم موقع بزرگ یا کوچیک شدن صفحه برنامه چجوری صفحه رفرش میشه که توی کد های خودم از اون استفاده کنم

    • مصطفی آصفی

      سلام به شما. می بخشید که دیر شد جوابتون.
      در مورد کدتون نمی تونم نظر بدم. ولی همون طور که در آموزش هم خدمتتون توضیح دادم شما به راحتی می تونید سورس Kivy و KivyMD رو در هر مورد بررسی کنید تا بفهمید که چطور رفتار می کنه. سورس کلاس‌های اسکرین و اسکرین منیجر رو در کیوی بررسی کنید تا کد مورد نظرتون برای شخصی سازی استفاده کنید (کنترل رو نگه دارید و تو در تو پیش برید).

  53. Rb (خریدار محصول)

    سلام جناب آصفی
    من یک باتوم نویگیشن دارم که میخوام وقتی روی هرکدوم از ایتم هاش کلیک شد اجزا ودکمه های تولبار هم باهاش تغیر کنه ولی موفق نشدم لطفا راهنمایی کنید
    یکبار به هرکدوم از ایتم های باتوم نویگیشن یه باکس لایوت دادم ولی توی هر کدوم یک تولبار گذاشتم ولی ارور داد که یک تولبار بیشتر نمیشه گذاشت .یکبار هم اومدم با on_tab_press هرکدوم رو تغیر بدم ولی فقط دفعه اول درست کار میکرد و دفعه های بعد ایتم های تولبار با هم قاطی میشد یعنی ایتم های صفحه اول رو به ایتم های صفه دوم اضافه میکرد
    و یک سول دیگه ایا این دوره های اموزشی گروهی ندارن که با بقیه دانشجو ها تبادل نظر کرد؟ با تشکر از این دوره های خوبتون

    • مصطفی آصفی

      سلام به شما. در مورد این نوع نویگیشن همون طور که در دوره هم اشاره کردم هر صفحه رو یک اسکرین تعریف کنید. از این نشانی (+) به عنوان نمونه کد استاندارد استفاده کنید.

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

  54. امیرمحمد بصیرت

    سلام خسته نباشید

    ایا من میتوانم در برنامه تولیدی با این app از ماژول sklearn (یا به طوری کلی الگوریتم های یادگیری ماشین) استفاده کنم؟؟

    خیلی ممنون

    • مصطفی آصفی

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

  55. M.mahdi.hamedani (خریدار محصول)

    سلام اقای اصفی
    توی کیوی یه قابلیت بود به اسم اسکرین و اسکرین منیجیر که میشد بین صفحه ها حرکت کرد
    من میخوام اینکارو توی کیوی ام دی کنم باید از چه کتابخونه ای استفاده کنم؟

    • مصطفی آصفی

      سلام به شما. دقت کنید که KivyMD چیزی جدا از کیوی نیست. برای مثال درس 12 این دوره رو ببینید. اونجا که پیاده سازی Navigation Drawer رو توضیح می دم عملا از Screen استفاده می کنم. شما همون اجزای پایه ای کیوی مثل BoxLayout و Screen و .. رو دارید و اینجا ویجت های KivyMD -که در واقع اون ها همگی در اصل از ویجت های کیوی ارث گرفته شدند- مثل MDIconButton و رو به جای Button معمولی کیوی و از این دست استفاده می کنید.

  56. امیر محمد کهنگی (خریدار محصول)

    سلام استاد .
    سوالی در زمینه ی ساخت خود KivyMD داشتم .KivyMD مجموعه ای از همان Kivy عادی است که در کنار هم قرار گرفته اند و ابزارهای متریال را به وجود آورده اند یا اینکه کد های جدیدی هستند که در کنار Kivy قرار گرفته اند ؟

    • مصطفی آصفی

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

  57. M.mahdi.hamedani (خریدار محصول)

    سلام اقای اصفی
    برای خروجی گرفتن ویندوز از کد کیوی ام دی باید چه افزونه هایی رو به فایل اسچک اضافه کنم؟
    دستور پای اینستالرش چیه؟همون مثل کیویه با فرق داره؟

    • مصطفی آصفی

      سلام به شما. اصول Pyinstaller تفاوتی نمی کنه اما بسته به پروژه ممکنه شما مواردی رو نیاز داشته باشین اضافه کنید. لطفا مستندات Pyinstaller رو در این زمینه با دقت بررسی کنید.

  58. مهزیار دهقان

    با سلام .
    برای هر برنامه نویسی لذت بخشه که توسط زبانی که یاد میگره بتونه اپ موبایل و یا اپ دکستاپ طراحی کنه و خیلی از کار های دیگه مثلا بک اند و ….
    وقتی این این اموزش جدید رو دیدم خیلی خوش حال شدم چون داشتم می رفتم که فلاتر رو یاد بگیرم .
    نمی خوام کیوی و فلاتر رو با هم مقایسه کنم شاید فلاتر بهتر باشه ولی برای من که پایتون کار کردم قطعا میام سمت کیوی ، به همین دلیل از شما کمال تشکر رو دارم به خاطر این آموزش.
    تنها سوالی که دارم اینه ایا حجم برنامه ای با کیوی می نویسم خیلی زیاده ؟

    • مصطفی آصفی

      سلام و ممنون از لطف شما. امیدوارم که شاهد پروژه های خوب و اثرگذار از شما باشم. حتما پروژه هایی که با کیوی نوشتید رو اگر ریلیز کردید اینجا معرفی کنید خوشحال میشم.
      حجم خروجی کیوی در مورد اندروید برای مثال بیشتر از حجم تولیدی با اندروید استودیو به صورت نیتیو هست اما در مورد کاربر امروزی چندان این مورد اثرگذار نیست.
      اپلیکیشنی که برای مثال در فیلم معرفی دوره در بالا خدمتتون معرفی کردم رو می تونید از گوگل پلی خودتون دریافت و بررسی کنید.

دیدگاه خود را بنویسید