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

F.P*_*F.P 30 css user-interface

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

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

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

我被困在布局管理器,对接参数和任何犯规生物的噩梦中,这些生物在java.swing和同伴之间撒谎.

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

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

现代Web应用程序完全采用纯粹,简单,简单的CSS设计.我是不是想要为我的桌面应用程序做同样的事情?当我写这篇文章时,两者之间的差距越来越大.有网页比任何大多数业余爱好程序员在他们的整个生活中写的要复杂得多.

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

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

有人甚至和我一样吗?

或者(会有什么相当的尴尬)是否有这样的工具,我太傻了,找不到它?

Mat*_*ský 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>
Run Code Online (Sandbox Code Playgroud)

和风格:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 我没有使用设计器来编写WPF的XAML代码.IMO设计师比handwritiog代码慢.这就是让我迷上WPF的原因 - Visual Studio的WinForms设计器文件不时地破坏,迫使我使用备份.WPF没有这样的危险. (6认同)

Kyl*_*yle 12

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

  • 你去吧 XULRunner ==独立的"基于网络"的应用程序. (2认同)

Ven*_*emo 8

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

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


Jon*_*han 7

"纯粹,简单,简单的CSS"

我怀疑你做过任何跨浏览器,可访问,浏览器无关的网站/应用程序.

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

我永远感激不再使用另一个"盒子模型黑客".

  • @ ApoY2k:我记得即使CSS按预期工作也试图取得一些效果时的苛刻.CSS很擅长定义某些元素的外观,但是当涉及到布局时,CSS确实是一个很糟糕的工具.我很惊讶这个问题的作者希望在GUI应用程序中使用CSS进行布局,而我愿意将GUI布局技术导入到web世界中. (2认同)

Bry*_*ley 7

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

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