基维外观和感觉
Posted
技术标签:
【中文标题】基维外观和感觉【英文标题】:Kivy Look and Feel 【发布时间】:2015-07-07 20:08:57 【问题描述】:我正在尝试构建一个外观清晰明快的 Kivy 应用程序,但默认的 Kivy UI 与我的想法不完全一致?有什么方法可以创建自定义主题来赋予您的 Kivy 应用风格?
这里的这个应用叫做 Pithon,它是用 Kivy 制作的。我到处搜索,但找不到任何关于开发人员如何管理如此干净外观的信息。有人有什么想法吗?
【问题讨论】:
我真的迫切需要有关此问题的帮助吗? Stack Overflow 不仅仅与声誉和程序有关。请忽略广泛的问题并帮助我解决这个问题。 那些只是带有浅灰色背景的标签小部件......并且可能是一个带有文本覆盖的 png 圆圈。有很多关于指定字体的教程......我不确定你的问题到底是什么......github.com/kivy/kivy/wiki/Theming-Kivy这个链接可能会让你立即感兴趣 不幸的是,这样的问题总是在 SO 中受到抨击。 那么如果是标签,开发者是如何指定固定填充的呢? 所以也许他使用了 iirc 也具有颜色属性和字体属性的按钮... 【参考方案1】:名为 Andrés Rodríguez 的 kivy 开发人员发布了一组基于 google 材料设计原则的小部件。我目前正在自己使用它们,它们肯定使我免于大量工作。您可以找到KivyMD here(有关更多信息,请参阅此答案的底部)。他们的一些主题也基于相同的原则,但我还没有尝试过,一个是 FlatKivy,另一个是 Federico Curzel 的 kivy material ui。
kivyMD、flatkivy 和 kivy material ui 的一些截图分别在这里。
单击突出显示的链接,您将找到有关这三个项目的更多信息。
Andrés Rodríguez 的original KivyMD 项目不再维护,但HeaTTheatR 的fork of KivyMD 处于活跃状态。
【讨论】:
您能否在答案中添加如何使用或演示屏幕截图? @spacemonkey 其中大部分都是一些新项目,文档还不成熟。 kivyMD 的作者表示,他将在不久的将来发布他的项目的文档,所以让我们拭目以待吧。 @TumukundeArnold 抱歉。那不是一个富有成效的评论。这些项目看起来非常好。期待随着他们的成熟而关注他们。 你只是覆盖了kivy的默认主题吗?或者你如何使用 kivy 主题?我在任何地方都找不到解决方案!【参考方案2】:(几乎)所有小部件都具有可用于设置其样式方面的属性。例如,使用 Button,您可以更改背景颜色、按下或释放时的背景图像以及边框区域的大小(就像在 CSS 边框图像中一样缩放)。您可以查看文档以了解给定小部件的详细信息。
可以通过关闭按钮的背景图像并仅使用纯色来实现类似于您发布的屏幕截图中的主题,非按钮文本为普通标签,圆圈直接使用 kivy 画布指令或通过一个图像小部件(以及一个圆圈的图像)。
我注意到您在评论中提到了填充,但我不确定您的意思 - 您是指按钮之间的距离吗?它们很可能被放置在具有控制它的填充属性的 GridLayout 中,因此您可以将其设置为您喜欢的任何内容。
我知道您问的问题比“这个屏幕截图是如何做到的?”更笼统,但关键是几乎所有内容都是可自定义的,从默认主题开始不需要太多更改到你的形象。
编辑:有助于这种自定义的一个有用功能是您可以使用 kv 语言非常轻松地覆盖小部件类的样式,因此您无需手动更改每个按钮等。
【讨论】:
是的,我明白这一点,但我遇到了问题。例如,当我尝试为按钮提供背景颜色时,我得到白色而不是 RGBA 灰色(227, 227, 227, 1)
。
根据我的经验,RGBA 数字的范围是从 0 到 1,因此您应该使用 (227, 227, 227, 1)
而不是 (227/255, 227/255, 227/255, 1)
没错,kivy 对这种事情遵循 opengl 约定。
虽然还要注意,如果你使用没有from __future__ import division
的python2,那么227/255
将评估为0。227/255.0
将始终有效(或确保浮点除法的其他方式)。以上是关于基维外观和感觉的主要内容,如果未能解决你的问题,请参考以下文章