常见问题
这本书什么时候完成?
Soon™。开源是一份礼物;所以随时我想写的时候。
如何扩展大型应用程序?
您将应用程序拆分为多个屏幕,然后使用简单的组合。
我的应用程序如何从通道接收更新?
您可以使用 Task::run
从异步 Stream
生成消息。
或者,如果您控制通道的创建;您可以使用 Subscription::run
。
Iced 支持从右到左的文本和/或 CJK 脚本吗?
还不是很好!
您可能能够使用带有 Shaping::Advanced
的 Text::shaping
渲染一些脚本,
但这些脚本的文本编辑尚不受支持;输入法编辑器 也不受支持。
不过,这些功能在 ROADMAP
中!
view
和 subscription
函数何时被调用?
在每批消息和 update
调用之后。但这是一个实现细节;
永远不应该依赖这一点。
尝试将这些函数视为声明性的、无状态的函数。
Iced 一直在重绘吗?!
是的!iced 目前在每个运行时事件后重绘;包括微小的鼠标移动。
有计划通过检测组件状态变化来减少重绘频率,但性能到目前为止还不是优先考虑的。
渲染器确实执行了相当多的缓存;所以重绘相当便宜。因此, 对于大多数用例来说,这很少是问题!
我收到一个恐慌,说没有运行反应器。这是怎么回事?
您可能正在使用 Task
来执行需要 tokio
执行器的 Future
:
there is no reactor running, must be called from the context of a Tokio 1.x runtime
您应该能够通过在 iced
crate 中启用 the tokio
feature flag 来解决这个问题:
iced = { version = "0.13", features = ["tokio"] }