sta*_*kit 5 python user-interface qt kivy
Kivy 有这种kv 语言来定义 UI,定义文件可能会变得非常复杂,github 上有一个 kv 设计器包,可以自动生成 kv 文件,但非常有缺陷且不可靠。所以问题是为什么 kivy 想要程序员手动编写这些 UI 定义,比如甚至硬编码 UI 小部件的位置和尺寸。大多数其他库,如 QT、VB 等,都有一个 UI 设计器作为核心功能,但 Kivy 并没有从它开始,并希望程序员对其进行硬编码,我觉得它很麻烦,虽然我觉得我错过了一些东西。还是只有我发现 kv 语言的学习曲线很陡峭,而我不知道一些有助于编写 kv 文件的工具。
如果您问为什么 Kivy 不是围绕 GUI 界面构建器设计的:
\n\n在他们的设计理念文档中,他们暗示了原因:
\n\n\n\n\n基维很专注。您可以使用几行代码编写一个简单的应用程序。Kivy 程序是使用 Python 编程语言创建的,该语言具有令人难以置信的通用性和强大性,但易于使用。此外,我们还创建了自己的描述语言 Kivy 语言,用于创建复杂的用户界面。这种语言允许您快速设置、连接和排列您的应用程序元素。我们认为,让您专注于应用程序的本质比强迫您摆弄编译器设置更重要。我们减轻了你肩上的负担。
\n
这非常强烈地表明,他们相信使 GUI 应用程序变得不那么麻烦的方法是像语言一样的文本驱动的声明性设计kv,而不是所见即所得的界面构建器。所以,这就是他们这样做的原因。
但他们为什么会这么想呢?好吧,事情变得主观了。
\n\n你显然不同意他们的观点。苹果也没有。也许微软不这样做。但这肯定是其他人都在追随的趋势。人们已经从使用图形 HTML 设计器转向直接在 HTML 和 JS 代码中使用声明式和过程式设计的组合。Macromedia 创建 Flex 是为了让人们无需使用 Flash Designer 即可创建 Flash 应用程序。各种跨平台 GUI 框架(Gtk+、wx、Tk、JUCE 等)要么没有界面构建器,要么将其作为可选的“继子”工具;唯一的例外是 Qt,它直到 4.0 才获得紧密集成的设计器。
\n\n看看 Xcode 和 Visual Studio 做了多少工作,以及 Apple 和 Microsoft 必须构建的所有额外复杂的东西来实现它们(记住,两家公司基本上接管并重新创建了一种编程语言,只是为了与他们的界面构建器一起工作,因为现有的主流语言不适合)。Kivy 可能是一个商业资助的项目,但他们没有无限的资源,大概他们认为他们必须花在做 Cocoa 和 Xcode 之类的事情上的精力最好花在其他地方。
\n\n对于为什么他们使用基于静态像素的布局(如 VB 或 wx)而不是相对布局(如 Cocoa 或 Qt\xe2\x80\xa6)的附带问题,首先,它不需要这样做,它是给你选择。两者各有优势,但是当您试图更轻松地设计在 320x480 屏幕上看起来不错的应用程序时,每个人都注意到 HTML 和其他设计为“可缩放到任何尺寸”的工具实际上缩放得多么糟糕对于这些尺寸,我可以看到像素完美布局的优势胜出。(请注意,HTML/CSS 同样为您提供了这两种选择。最早制作移动页面的网站利用了像素布局 CSS,但随着人们研究如何使“可扩展”和“小型”工作,它们逐渐发展在一起,并且随着移动屏幕变得更加多变。)
\n