Pengenalan Rio Minimal

Barbara Streisand
Barbara Streisandasal
2025-01-04 20:22:41461semak imbas

Pada awal November saya melihat pengumuman keluaran untuk Rio (https://rio.dev), perpustakaan Python yang akan datang untuk mencipta antara muka pengguna. Saya mempunyai pengalaman bertahun-tahun menggunakan Qt dengan Python dan sentiasa berminat untuk melihat pendekatan baharu.

Saya telah melalui tutorial Tic Tac Toe dan menemui banyak perkara yang saya suka. Saya pada mulanya kagum dengan kesederhanaan menulis antara muka menggunakan kelas komponen. Antara muka berjalan melalui dokumen HTML, yang dikapsulkan sepenuhnya oleh perpustakaan. Ini memberikan banyak kemungkinan tentang bagaimana dan di mana aplikasi Rio dijalankan. Rio secara pilihan menyertakan aplikasi paparan web kendiri. Walau bagaimanapun, saya secara kritis tidak menyukai alat baris arahan rio yang disertakan dan struktur projek awal yang diciptanya.

Saya rasa Rio berhak mendapat tutorial yang lebih ringan yang menghilangkan boilerplate dan abstraksi untuk menunjukkan potensi perpustakaan ini. Mari kita mulakan daripada tiada dan temui perasaan Rio membinanya untuk diri kita sendiri. Saya dapati bermula dengan uv adalah semudah yang saya harapkan.

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

Ciri [tetingkap] pilihan memasang banyak kebergantungan yang diperlukan untuk menjalankan apl kendiri. Juga sedar saya perlu menggunakan ==9.3 pada Windows kerana tiada binaan pyside.

Mari kita gunakan kod minimum yang diperlukan untuk membina aplikasi ini.

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

Ini ialah skrip Python biasa. Jalankan dengan penterjemah python anda.

uv run hello.py

Komponen adalah lebih daripada kaedah binaan yang mengembalikan komponen dan keadaan yang ditakrifkan pada kelas. Anda tidak mentakrifkan __init__ atau boilerplate biasa yang lain. Anda boleh menggantikan run_in_window dengan run_as_web_server dan berinteraksi dengan aplikasi ini dalam penyemak imbas anda.

Ia memerlukan sedikit masa untuk menambah beberapa interaktiviti. Berikut ialah komponen serupa yang menambahkan kotak pilihan dan penggayaan.

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

salam kelas2(rio.Component):
    diperiksa: bool = False

    binaan def(diri):
        style = rio.TextStyle(fill=gradient) jika self.checked else 'text'
        kembalikan rio.Row(
            rio.Checkbox(is_on=self.bind().checked),
            rio.Text('Mawar berwarna merah.',>



<p>Ini menggunakan self.bind() untuk mencipta pengikatan dua hala antara keadaan kotak semak dan atribut. Sebagai alternatif, adalah mudah untuk memberikan argumen on_change kotak pilihan kepada sebarang kaedah dan menukar atribut diri seperti yang dikehendaki.</p>

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

<p>Dapatkan contoh dan dokumentasi yang lebih lengkap di tapak web projek Rio. Secara peribadi, saya belum bersedia untuk meninggalkan dunia Qt dan Pyside, tetapi saya juga rasa masih cukup di Rio untuk diperhatikan.</p>
  • https://rio.dev/examples
  • https://rio.dev/docs
  • https://github.com/rio-labs/rio

Atas ialah kandungan terperinci Pengenalan Rio Minimal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn