roboforum.ru

Технический форум по робототехнике.

Ищу... Простой язык описания GUI

Вопросы не попавшие в другие категории.

Re: Ищу... Простой язык описания GUI

Сообщение Виталий » 05 авг 2011, 12:28

В порядке бреда...
Сверстать все в HTML, в нужный размер по пикселям. А дальше сделать кучу скриншотов (это можно автоматизировать).
Останется запрограммировать только вывод "живой графики" в определенные места картинок.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Ищу... Простой язык описания GUI

Сообщение =DeaD= » 05 авг 2011, 12:45

Вроде Qt Creator хранит формы в XML, но наверное на МК всякие XML - зло? :oops:

Заодно получите готовый редактор формы, останется только вывод сделать на девайсе :roll:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Ищу... Простой язык описания GUI

Сообщение Michael_K » 09 авг 2011, 12:30

Ну, в общем, пошарил ночью, посмотрел, как делают другие...
Ощущение, что каждый извращается как хочет.
Вот типичное:
Код: Выделить всёРазвернуть
########### Screen 2 dot com or dot net ############
GUI SCS S 2
GUI BG  A 2

GUI LBL O 40 20
GUI LBL A 0
GUI LBL F 0
GUI LBL T Have you ever visited our website?
GUI LBL E

GUI BT  O 40 125
GUI BT  N 0
GUI BT  M 2 2


или

Код: Выделить всёРазвернуть
<PRESS>
IO 8 1
DELAY 2
IO 14 0
DELAY 2
IO 15 1
DELAY 2
IO 15 0
DELAY 2
SER1 BLUEBEE
<END>


Ну и не буду тогда париться. Сделаю что-нибудь в таком же духе.

Добавлено спустя 2 минуты 57 секунд:
Но вообще, удивительно, как простые по сути вещи обрастают какими-то дикими требованиями.
Не комильфо.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Ищу... Простой язык описания GUI

Сообщение =DeaD= » 09 авг 2011, 12:53

<PRESS>
IO 8 1
DELAY 2
IO 14 0
DELAY 2
IO 15 1
DELAY 2
IO 15 0
DELAY 2
SER1 BLUEBEE
<END>

Вот это уже совсем не гуй, а скриптовый action-язык какой-то :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Ищу... Простой язык описания GUI

Сообщение Michael_K » 09 авг 2011, 14:05

ну это я специально такой кусочек выбрал для разнообразия :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Ищу... Простой язык описания GUI

Сообщение Angel71 » 09 авг 2011, 15:57

можно на подобии сделать
Код: Выделить всёРазвернуть
<Window x:Class="OliverCode.MVVM.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MVVM Demostration" Height="297" Width="480"
    xmlns:views="clr-namespace:OliverCode.MVVM.View">
   
    <Grid Margin="10">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="460*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition Height="80*"/>
        </Grid.RowDefinitions>
        <Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="0">
            <Label Height="30" Width="400" Content="Below is a two way binding between the view view-model, and model"/>
        </Border>
        <Border CornerRadius="5" BorderBrush="SteelBlue" BorderThickness="2" Grid.Row="1" Margin="0,5,0,0">
            <views:PersonView/>
        </Border>
    </Grid>
</Window>

1.jpg

описание внешнего вида находится между
Код: Выделить всёРазвернуть
<Grid Margin="10"> ...   </Grid>


а это что из себя представляет <views:PersonView/>:
Код: Выделить всёРазвернуть
<UserControl x:Class="OliverCode.MVVM.View.PersonView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="Auto" Width="Auto"
    xmlns:local="clr-namespace:OliverCode.MVVM.ViewModel">
    <StackPanel Orientation="Vertical" Margin="4">
        <!--Here is where we the view gets a copy to the ViewModel Declaratively-->
        <StackPanel.DataContext>
            <local:PersonViewModel />
        </StackPanel.DataContext>       
        <StackPanel Orientation="Vertical" DataContext="{Binding Path=Person, Mode=TwoWay}" Margin="4">
            <StackPanel Orientation="Horizontal">
                <Label Content="First Name:" Margin="0,0,4,0"/>
                <TextBox Width="250" Text="{Binding Path=FirstName}"/>
            </StackPanel>
            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                <Label Content="Last Name:" Margin="0,0,4,0"/>
                <TextBox Width="250" Text="{Binding Path=LastName}"/>
            </StackPanel>
            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                <Label Content="Age:" Margin="35,0,4,0"/>
                <TextBox Width="50" MaxLength="3" Text="{Binding Path=Age}"/>
            </StackPanel>
        </StackPanel>       
        <StackPanel>
            <Button Content="Save" HorizontalAlignment="Right" Width="80" Command="{Binding Path=SavePersonCommand}"/>
        </StackPanel>
    </StackPanel>
</UserControl>

2.jpg
2.jpg (11.34 КиБ) Просмотров: 1794

можно и динамически подгружаемым/изменяемым сделать. вопрос в том, есть ли желание делать что-то подобное.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Ищу... Простой язык описания GUI

Сообщение Michael_K » 09 авг 2011, 16:16

Под такую канитель у меня парсер будет больше, чем весь пользовательский код вместе взятый, он потребует всяких хипов с маллоками, пол-пентиума, и отлаживать его подохнешь... :)
Ну... примерно так...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Ищу... Простой язык описания GUI

Сообщение Виталий » 09 авг 2011, 16:23

Глянь QML, под него парсер будет простым (это просто JSON), хипы с маллоками по желанию.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Ищу... Простой язык описания GUI

Сообщение Angel71 » 09 авг 2011, 17:06

можно и не настолько сложно. простенький гуи движок вполне реально за пару месяцев написать. основной головняк в другом - спроектировать архитектуру под свои нужы.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Ищу... Простой язык описания GUI

Сообщение Michael_K » 09 авг 2011, 17:31

Не, ну за пару-то месяцев можно и не такое написать, кто же спорит... :)
Мне же чисто в утилитарных целях, а не в целях "совершенствования всего и вся" :))
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Ищу... Простой язык описания GUI

Сообщение Strijar » 09 авг 2011, 23:28

Виталий писал(а):Глянь QML, под него парсер будет простым


Тогда уж проще YAML - я уже выше предлагал его
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Ищу... Простой язык описания GUI

Сообщение Michael_K » 09 авг 2011, 23:51

Ну я на него посматриваю, только парсер все-равно писать, и смысл придерживаться какому-то внешнему стандарту теряется.

Добавлено спустя 8 минут 14 секунд:
Глянь QML, под него парсер будет простым...

Тогда уж проще YAML - я уже выше предлагал его...

Ребят, если я не отвечаю, это не значит, что игнорирую - я честно смотрю, читаю, мотаю на ус...

Просто я думаю, что в "универсальном" парсере необходимости нет вовсе.
Нафиг мне такой уровень абстракции (и абстрагирования от задачи)?
Скорее всего это будут все-таки предопределенные ключевые слова.
А синтаксис, да, нравится.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Ищу... Простой язык описания GUI

Сообщение Виталий » 10 авг 2011, 12:23

Парсер (разобрать синтаксис) совсем простой. Основная работа будет нарисовать "примитивы". Ну и еще нужно эмулятор написать, чтобы отдать дизайнеру на проработку.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Ищу... Простой язык описания GUI

Сообщение Michael_K » 07 сен 2011, 22:55

Продолжу. (Какое-то время проект был в подвешенном состоянии)

Пока видится два диаметрально противоположных подхода:
1. Более-менее полноценный язык программирования. То есть с карточки подгружается скрипт, который выполняется, рисует все что надо, где надо и вызывает нэйтив-функции, которые отвечают, собственно, за функционал.
Плюсы-минусы:
+ Абсолютная гибкость. Можно кардинально перелопатить и интерфейс и логику его работы.
+ Простая реализация API (нэйтив-функций) со стороны встроенного ПО.
- Сложность реализации интерпретатора (компилятора в байт-код, JIT-компилятора).
- GUI не отделен от программирования, хотя и отделен от основного функционала.
Примеры - экшнскрипт, вижуалбэйсик...

2. Чистый язык описания интерфейса. Все функции делает встроенное ПО, которое загружает с карточки только параметры предопределенных объектов.
Плюсы минусы.
+ дизайн абсолютно отделен от программирования
+ простой парсер без наворотов
* встроенное ПО объемное, но в меру сложное
- Логика работы интерфейса жестко задана
Примеры - скины, файлы ресурсов

Можно предложить разные "промежуточные" варианты. Например:
3. Функционирование устройства определяется структурой данных, которую предоставляет пользовательский интерфейс.
Плюсы-минусы:
+ Гибкое решение. Можно кардинально перелопатить и интерфейс и логику его работы.
+ Дизайн отделен от программирования, но его описание довольно сложное.
* Умеренно сложный интерпретатор скрипта
- Сложная организация встроенного ПО, перегруженный API к интерфейсу
- Необходимость "специальных" элементов интерфейса или функций для реализации функционала.

Еще варианты? Мысли?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Ищу... Простой язык описания GUI

Сообщение Сергей » 07 сен 2011, 23:03

А что-нибудь готовое и красивое не подойдет? Например http://www.4dsystems.com.au/

Добавлено спустя 1 минуту 24 секунды:
Также продаются просто отдельные чипы для графики.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Пред.След.

Вернуться в Обо всём

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3