برنامه نویسی

Minimal Rio Intro – DEV Community

در اوایل نوامبر، اعلامیه انتشار ریو (https://rio.dev)، یک کتابخانه آینده پایتون برای ایجاد رابط های کاربری را دیدم. من سالها تجربه استفاده از Qt با پایتون را دارم و همیشه علاقه مند به دیدن رویکردهای جدید هستم.

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

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

uv init minirio --no-readme --no-pin-python --vcs none
cd minirio
uv add rio-ui[window]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اختیاری [window] ویژگی بسیاری از وابستگی های مورد نیاز برای اجرای برنامه مستقل را نصب می کند. همچنین توجه داشته باشید که من باید استفاده کنم ==9.3 در ویندوز به دلیل از دست رفتن بیلدهای pyside.

بیایید از حداقل کد مورد نیاز برای ساخت این برنامه استفاده کنیم.

توضیحات تصویر

import rio

class Greeting(rio.Component):
    name: str = 'World'
    def build(self):
        return rio.Row(
            rio.Icon('material/star', align_x=0.8, align_y=0.5),
            rio.Markdown(f'Hello, **{self.name}**', align_y=0.5),
        )

if __name__ == '__main__':
    app = rio.App(build=Greeting)
    app.run_in_window()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این یک اسکریپت معمولی پایتون است. آن را با مفسر پایتون خود اجرا کنید.

uv run hello.py
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک جزء کمی بیشتر از a است build متدی که یک جزء و یک حالت تعریف شده روی کلاس را برمی گرداند. شما تعریف نمی کنید __init__ یا دیگر دیگ های معمولی. می توانید جایگزین کنید run_in_window با یک run_as_web_server و با این اپلیکیشن در مرورگر خود تعامل داشته باشید.

افزودن تعاملی بسیار کم نیاز دارد. در اینجا یک مؤلفه مشابه وجود دارد که یک چک باکس و یک ظاهر طراحی را اضافه می کند.

gradient = rio.LinearGradientFill(
    (rio.Color.RED, 0), (rio.Color.PINK, .3),
)

class Greeting2(rio.Component):
    checked: bool = False

    def build(self):
        style = rio.TextStyle(fill=gradient) if self.checked else 'text'
        return rio.Row(
            rio.Checkbox(is_on=self.bind().checked),
            rio.Text('Roses are red.', style=style),
        )
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این در حال استفاده است self.bind() برای ایجاد یک اتصال دو طرفه بین وضعیت چک باکس و یک ویژگی. از طرف دیگر، اختصاص دادن چک باکس ساده است on_change استدلال به هر روش و تغییر ویژگی های self به دلخواه

توضیحات تصویر

نمونه ها و مستندات کامل تر را در وب سایت پروژه ریو بیابید. من شخصاً هنوز آماده ترک دنیای Qt و Pyside نیستم، اما همچنین فکر می کنم در ریو به اندازه کافی وجود دارد که بتوانم آن را زیر نظر داشته باشم.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا