【问题标题】:Can I use html&css in kivy and python3?我可以在 kivy 和 python3 中使用 html&css 吗?
【发布时间】:2019-06-30 17:44:50
【问题描述】:

我目前正在用 linux 中的 python 3.52 开发一个嵌入式多点触控 kivy 程序。 Kivy 不错,但我发现 GUI 开发在某些方面相当困难,而且动画通常很滞后。

另外,我发现如果我将许多小部件放在一个页面中,程序会变得很慢。我的程序包含很多小部件,所以我也认为实现 webview 会有所帮助。

所以我正在寻找特定屏幕中的 html 和 css 视图以获得更好的外观和感觉(也许通过使用过渡来改进动画?)。

我找到了 Cefpython,但它说它只适用于 python 2.7 并且说它不稳定。它似乎只是从互联网上获取 url,而不是从文件系统中获取 html 和 css。 (如果我错了,请纠正我。)

实际上,我什至不需要作为浏览器的功能,我所需要的只是用于几个屏幕的 UI/UX 开发的 html 和 css。

我的嵌入式系统并不总是支持互联网(这意味着它应该在没有互联网的情况下工作)。所以我不能在里面放任何网址。再一次,我只是想用它们来做造型。有什么好的方法吗?还是没有我想要的那种东西?

或者有其他推荐吗?

【问题讨论】:

  • 您可以像在浏览器中那样在 CEF 中加载离线文件。当您在 Google Chrome 中加载本地 html 文件时,您会看到 url 为 file:///path/to/file.html。在 CEF 中使用相同的 url 来加载内容。

标签: python html css embedded kivy


【解决方案1】:

不,当然,除非您愿意实现 html 和 css 解析器以及 Web 渲染器。我想说最好找出为什么你觉得用 kivy 做某些事情很困难,以及如何解决这个问题。我还没有找到使用 web 技术比使用 kivy 更容易使用的 UI/布局/模板,但是我在 kivy 方面比在 web 前端更熟练,所以我可能会有偏见。

【讨论】:

  • 我的一个问题是,如果我将许多布局复杂的小部件放在一个屏幕上,它会变得非常慢。尤其是弹出窗口。我创建了类似于虚拟键盘的东西,我在屏幕上有很多按钮和图像。但是我觉得这种方式的用户体验真的很糟糕,因为按钮响应不佳,并且经常忽略触摸。所以我在想也许那几个屏幕可以用 webview 代替。另外,我发现 html css 更舒服,因为当我遇到 Kivy 问题时。有时要花很多时间来解决它。但是html css真的很容易处理。
  • 此外,如果我可以在 Kivy 中嵌入 webview,我还可以重用网页及其外观,而不是在 kivy 中构建另一个屏幕。
  • 小部件过多的性能问题可以通过延迟加载和/或回收来解决(一长串的事情应该总是用 RecycleView 完成),并确保你没有创建不必要的触发绑定,特别是当屏幕不可见时(您可以使用 on_enter 和 on_leave 来启用/禁用某些东西,例如动画)。回答这个问题有点太笼统了,如果你展示一些你认为应该很快但很慢的特定代码,特别是如果它很容易运行以供其他人分析,它'将更容易帮助发现不良模式并提供替代方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 2015-11-23
  • 2017-04-13
  • 2021-01-13
  • 1970-01-01
  • 2020-03-13
相关资源
最近更新 更多