Ответ 1
Mozilla XML-язык XUL использует CSS как инструмент для макета gui. У них есть статья " Skinnable XUL и CSS".:)
Хорошо, так что это, вероятно, будет закрыто или что-то еще, мне все равно. Я должен сказать это, потому что это просто расстраивает меня, как ад.
Когда-то я пришел из html/css/php-фона в огромные глубины разработки приложений. Я бродил по долинам Явы и изучал тайны С#. Я задохнулся от красоты Ruby, упал на упрямую простоту Bash и время от времени возвращался к моим старым друзьям HTML, CSS и PHP.
До тех пор, пока у меня не было стремления создать настольное приложение на Java, я был потрясен болью и страданиями, которые мне пришлось пройти, чтобы сделать приложение более удобным для пользователя с точки зрения внешнего вида.
Я был в ловушке кошмара LayoutManagers, параметров док-станции и любых фол-существ, которые лгали за воротами java.swing и компаньонов.
В этот момент я почувствовал, что во мне развивается идея. Как сказал Кобб; Какой самый устойчивый паразит? Бактерии? Вирус? Кишечный червь? Идея. Устойчивый... сильно заразный. Как только идея овладела мозгом, ее почти невозможно искоренить. Идея, которая полностью сформирована - полностью понята - то, что палки; прямо где-то там. - Знаешь, эта любопытная идея.
Мне было интересно, почему это не так просто, как это сделал мой приятель CSS. Макет как таковой, используя поля, границы, плавающие, что угодно.
Современные веб-приложения полностью разработаны в чистом, простом и легком CSS. Неужели я безумный из-за того, что я хочу использовать его для настольных приложений? Разрыв между ними все больше и больше закрывается, когда я пишу это. Есть веб-страницы, которые намного сложнее, чем все, что большинство программистов-хобби будут писать за всю свою жизнь.
Я просто не могу понять, почему создание GUI должно быть такой проблемой. Наверное, это потому, что я исхожу из другого фона и привык к стилю, подобному CSS, так что только я чувствую этот способ, но все же;
Разве никто не думал об этом? Было бы так сложно создать CSS-парсер для стилирования GUI? С теми же методами, что и в веб-разработке? Классы, идентификаторы, селектор и т.д. Какая большая трудность в создании этого?
Кто-нибудь чувствует то же, что и я?
Или (что было бы довольно emberassing) есть ли такой инструмент, и я был слишком глуп, чтобы найти его?
Mozilla XML-язык XUL использует CSS как инструмент для макета gui. У них есть статья " Skinnable XUL и CSS".:)
Microsoft NET WPF (Windows Presentation Foundation) - это решение для создания графического интерфейса, похожее на HTML + CSS.
IMO, он гораздо более универсален, чем HTML, но все еще прост в использовании (и для создания читаемого графического интерфейса).
Определение макета так же просто:
<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>
В приложениях Qt вы можете использовать синтаксис типа CSS, называемый QSS.
Следующая версия также будет иметь "декларативный интерфейс", называемый QML.
WPF и Silverlight также используют декларативный язык на основе XML для своего интерфейса, называемый XAML.
Все это вопрос перспективы. Я занимаюсь разработкой настольных приложений на протяжении нескольких десятилетий. Я думаю, что CSS абсолютно ужасен. Это смешно трудно создать достойный макет, и настоящая интерактивность - королевская боль. По-моему.
Теперь я использую в основном tcl/tk и python/wxpython, что делает разработку графического интерфейса довольно простой. Я вижу, как, если ваш первый вкус программирования GUI на рабочем столе - это java, вы сделали вывод, что вы это сделали. Я бы не желал программировать GUI для Java.
"чистый, простой, простой CSS"
Я сомневаюсь, что вы сделали кросс-браузерные, доступные, агностические веб-сайты/приложения браузера.
Истина гораздо больнее, чем вы думаете.
Я был бы бесконечно благодарен, чтобы никогда больше не использовать еще один "взлом коробки".
Зачем беспокоиться, как только скоро HTML и Javascript станут универсальным и всеобъемлющим способом написания приложений, ориентированных на пользователя ^^
Кроме того, я действительно не использовал WPF, но, похоже, он использует "декларативный" метод построения пользовательского интерфейса в том, как вы описываете свои мечты, и он распространяется на Silverlight и всевозможные технологии Microsoft. Они не могут быть одинокими в этом подходе...
Если вы не привязаны к java, WPF со своим XAML - это своего рода подход, который вы описываете, отделяя макет от логики, как CSS с HTML.