为什么没有类似CSS的GUI创建者

时间:2010-09-09 08:06:01

标签: css user-interface

好的,所以这可能会被关闭或者其他什么,我不在乎。我不得不这样说,因为它让我感到沮丧。

曾几何时,我从html / css / php背景进入了广泛的应用程序开发。我在Java的山谷中闲逛,探索了C#的奥秘。我厌倦了Ruby的美丽,堕落了Bash的顽固简洁,不时回来拜访我的老朋友HTML,CSS和PHP。

直到我想要用Java创建一个桌面应用程序,我才感到震惊,为了使应用程序在外观和感觉方面或多或少地用户友好,我必须经历的痛苦和痛苦。

我陷入了布局管理员的噩梦,停靠参数和任何犯规生物在java.swing和同伴的门外撒谎。

此时,我觉得有一种想法在我身上滋生。正如Cobb所说; 什么是最有弹性的寄生虫?菌?病毒?肠蠕虫?一个主意。弹性......具有高度传染性。一旦一个想法掌握了大脑,就几乎不可能根除。一个完全形成的想法 - 完全理解 - 坚持;就在某处。 - 你知道,那个想法。

我在想,为什么它不能像我的好友CSS那样简单。这样做,使用边距,边框,浮动等等。

现代网络应用程序完全采用纯粹,简单,简单的CSS设计。我是不是想要为我的桌面应用程序做同样的事情?当我写这篇文章时,两者之间的差距越来越大。有些网页比大多数业余爱好程序员一生都会写的要复杂得多。

我无法理解为什么GUI创建必须如此大惊小怪。可能只是因为我来自不同的背景并习惯了类似CSS的样式,所以只有我这样,但仍然如此;

有没有人想过这个?创建一个CSS解析器来设置GUI样式会不会很难?使用与Web开发完全相同的方法?类,ID,选择器等创建它的难度是什么?

有人甚至有同样的感觉吗?

或者(会有什么相当令人尴尬的)是否有这样的工具,而且我太愚蠢而无法找到它?

7 个答案:

答案 0 :(得分:13)

Microsoft .NET的WPF(Windows Presentation Foundation)是一种类似于HTML + CSS的GUI创建解决方案。

IMO,它比HTML更通用,但仍然易于使用(并创建可读的GUI代码)。

定义布局就像这样简单:

<DockPanel>
    <Label Content="Dock Panel Layout Demo" 
    FontSize="15" FontWeight="Bold" Background="LightBlue"
    Foreground="Blue" DockPanel.Dock="Top"/>

    <Label Content="Footer" FontSize="15" FontWeight="Bold" 
           Background="LightGray"
           DockPanel.Dock="Bottom" />

    <Label Content="Left Pane" FontSize="15" FontWeight="Bold"
           Width="125" Background="Firebrick"
           DockPanel.Dock="Left"/>

   <Label Content="Content Pane" FontSize="15" FontWeight="Bold"
           Width="255"
           Background="Beige"/>

    <Label Content="Right Pane" FontSize="15" FontWeight="Bold"
           Width="125" Background="Khaki"
           DockPanel.Dock="Right"/>
</DockPanel>

风格:

<Window.Resources>
    <Style x:Key="myStyle" TargetType="Button">
       <Setter Property="Background" Value="Orange" />
       <Setter Property="FontStyle" Value="Italic" />
       <Setter Property="Padding" Value="8,4" />
       <Setter Property="Margin" Value="4" />
    </Style>
</Window.Resources>

答案 1 :(得分:12)

Mozilla的基于XML的语言XUL使用CSS作为gui布局的工具。他们有一篇关于“Skinnable XUL and CSS”的文章。 :)

答案 2 :(得分:8)

在Qt应用程序中,您可以使用类似CSS的语法,称为QSS 下一个版本还将有一个名为QML的“声明性UI”。

WPF和Silverlight也为其UI使用基于XML的声明性语言,称为XAML。

答案 3 :(得分:7)

这完全是透视问题。几十年来我一直在做桌面应用程序开发。我认为CSS非常糟糕。创建一个体面的布局是非常困难的,真正的交互性是一种皇家的痛苦。在我看来。

现在,我主要使用tcl / tk和python / wxpython,这使得GUI开发变得非常简单。我可以看到,如果您第一次尝试使用桌面GUI编程,那么您会得出结论。我不希望任何人使用java GUI编程。

答案 4 :(得分:6)

“纯粹,简单,简单的CSS”

我怀疑您是否已经完成了任何跨浏览器,可访问,与浏览器无关的网站/应用程序。

事实比你想象的要痛苦得多。

我永远感激不再使用另一个“盒子模型黑客”。

答案 5 :(得分:4)

为什么要尽快打扰HTML和Javascript将成为编写面向用户的应用程序的通用和无所不包的方式^^

此外,我还没有真正使用WPF,但它似乎涉及一种“声明性”UI构建技术,就像你描述你的梦想一样,它延伸到Silverlight和各种微软技术。他们不能孤军奋战......

答案 6 :(得分:2)

如果你没有修复java,那么带有XAML的WPF就是你所描述的一种方法,将布局与逻辑分开,就像CSS与HTML一样。