首頁 >後端開發 >Python教學 >最小裡約簡介

最小裡約簡介

Barbara Streisand
Barbara Streisand原創
2025-01-04 20:22:41472瀏覽

11 月初,我看到了 Rio (https://rio.dev) 的發佈公告,這是一個即將推出的用於創建用戶界面的 Python 庫。我擁有多年使用 Qt 和 Python 的經驗,並且總是對新方法感興趣。

我瀏覽了井字遊戲教學並發現了很多我喜歡的東西。最初,使用元件類別編寫介面的簡單性給我留下了深刻的印象。該介面透過一個HTML文件運行,該文件被庫完全封裝。這為 Rio 應用程式的運作方式和位置提供了多種可能性。 Rio 可以選擇包含一個獨立的 Webview 應用程式。然而,我非常不喜歡附帶的 rio 命令列工具及其創建的初始專案結構。

我認為 Rio 值得一個更輕量級的教程,剝離樣板和抽像以展示這個庫的潛力。讓我們從零開始,了解 Rio 是如何為自己打造它的。我發現開始使用 uv 正如我所希望的那樣簡單。

uv init minirio --no-readme --no-pin-python --vcs none
cd minirio
uv add rio-ui[window]

可選的[window]功能安裝運行獨立應用程式所需的許多相依性。另請注意,由於缺少 pyside 構建,我需要在 Windows 上使用 ==9.3。

讓我們使用建立此應用程式所需的最少程式碼。

Minimal Rio Intro

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()

這是一個常規的 Python 腳本。使用 python 解釋器運行它。

uv run hello.py

元件只不過是一個傳回元件和類別上定義的狀態的建構方法。您沒有定義 __init__ 或其他典型的樣板檔案。您可以將 run_in_window 替換為 run_as_web_server 並在瀏覽器中與此應用程式互動。

加入一些互動性只需很少的時間。這是一個類似的元件,添加了複選框和樣式。

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

類別 Greeting2(rio.Component):
    檢查:布爾=假

    def 建置(自身):
        style = rio.TextStyle(fill=gradient) if self.checked else 'text'
        返回 rio.Row(
            rio.Checkbox(is_on=self.bind().checked),
            rio.Text('玫瑰是紅色的。',>



<p>這是使用 self.bind() 在複選框狀態和屬性之間建立雙向綁定。或者,可以直接將複選框的 on_change 參數指派給任何方法並根據需要更改 self 的屬性。 </p>

<p><img src="https://img.php.cn/upload/article/000/000/000/173599336588947.jpg" alt="Minimal Rio Intro"></p>

<p>在 Rio 專案網站上尋找更完整的範例和文件。就我個人而言,我還沒有準備好離開 Qt 和 Pyside 的世界,但我也認為 Rio 有足夠多的東西值得關注。 </p>
  • https://rio.dev/examples
  • https://rio.dev/docs
  • https://github.com/rio-labs/rio

以上是最小裡約簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn