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。
让我们使用构建此应用程序所需的最少代码。
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="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173599336588947.jpg?x-oss-process=image/resize,p_40" class="lazy" 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中文网其他相关文章!

Python列表切片的基本语法是list[start:stop:step]。1.start是包含的第一个元素索引,2.stop是排除的第一个元素索引,3.step决定元素之间的步长。切片不仅用于提取数据,还可以修改和反转列表。

ListSoutPerformarRaysin:1)DynamicsizicsizingandFrequentInsertions/删除,2)储存的二聚体和3)MemoryFeliceFiceForceforseforsparsedata,butmayhaveslightperformancecostsinclentoperations。

toConvertapythonarraytoalist,usEthelist()constructororageneratorexpression.1)intimpthearraymoduleandcreateanArray.2)USELIST(ARR)或[XFORXINARR] to ConconverTittoalist,请考虑performorefformanceandmemoryfformanceandmemoryfformienceforlargedAtasetset。

choosearraysoverlistsinpythonforbetterperformanceandmemoryfliceSpecificScenarios.1)largenumericaldatasets:arraysreducememoryusage.2)绩效 - 临界杂货:arraysoffersoffersOffersOffersOffersPoostSfoostSforsssfortasssfortaskslikeappensearch orearch.3)testessenforcety:arraysenforce:arraysenforc

在Python中,可以使用for循环、enumerate和列表推导式遍历列表;在Java中,可以使用传统for循环和增强for循环遍历数组。1.Python列表遍历方法包括:for循环、enumerate和列表推导式。2.Java数组遍历方法包括:传统for循环和增强for循环。

本文讨论了Python版本3.10中介绍的新“匹配”语句,该语句与其他语言相同。它增强了代码的可读性,并为传统的if-elif-el提供了性能优势

Python中的功能注释将元数据添加到函数中,以进行类型检查,文档和IDE支持。它们增强了代码的可读性,维护,并且在API开发,数据科学和图书馆创建中至关重要。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1
功能强大的PHP集成开发环境