Easyelectronics.ru

Электроника для всех
Текущее время: 19 июл 2018, 20:18

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
 Заголовок сообщения: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 09:24 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 532
В последнее время стал активно использовать этот HTML GUI для своих утилит по управлению приборами. Это HTML GUI со скриптами и CSS, который можно использовать с разными языками программирования. У меня в планах переписать свой прошивальщик с Delphi на C++ со sciter-ом. Очень советую эту библиотеку, для начала можно скачать https://sciter.com/sdk/sciter-sdk.zip, запустить sciter.exe из bin и пооткрывать разных примеров из директории samples. Можно использовать с компилятором MinGW + CodeBlocks:

1) скачиваем
https://sourceforge.net/projects/tdm-gc ... e/download
https://sourceforge.net/projects/codebl ... e/download
https://sciter.com/sdk/sciter-sdk.zip

2) устанавливаем TDM-GCC, CodeBlocks, распаковываем sciter-sdk.zip

3) создаем пустой консольный проект, копируем следующее содержимое в main.cpp:
Show код


4) в настройках CodeBlocks выставляем две опции компилятора
- "Have g++ follow the C++14 ISO C++ language standard [-std=c++14]"
- "Target x86_64 (64bit) [-m64]"
опции линковщика:
В раздел "Link libraries" добавить "libole32"
В раздел "Other linker options" добавить "-municode"
и "Search directories", например "C:\sciter\sdk\include" если распаковали архив SDK в директорию C:\sciter\sdk

5) запускаем по F9, исправляем две ошибки

ошибка 1 "C:\sciter\sdk\include\sciter-win-main.cpp|1|fatal error: stdafx.h: No such file or directory|"
закомментировать "stdafx.h"

ошибка 2"C:\sciter\sdk\include\tiscript-streams.hpp|78|error: '_wfopen_s' was not declared in this scope|"
замените _wfopen_s(&_file,filename,L"rb"); на
_file = fopen(aux::w2a(filename),"rb");

sciter.dll на 32 или 64 бита нужно поместить в директорию с откомпилированным проектом

Быстро отвечают на вопросы. Кто не рубит в английском, пишите, может чем помогу.
Вообще отличная вещь. Сейчас использую TrueStudio для STM32 и Sciter+MinGW+CodeBlocks для Windows, очень удобно без надобности устанавливать громоздкий Microsoft Visual Studio. Удобно перезаливать прошивку с TrueStudio и тут же из CodeBlocks править пользовательскую программу и почти мгновенно запускать по F9 и подключаться к отладочной плате своими утилитами.


Последний раз редактировалось tmtlib 03 апр 2018, 11:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 10:52 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1126
Откуда: Китай, Пекин
Цитата:
для своих утилит по управлению приборами.

для утилит управления приборами создана туева хуча фреймворков. мультиплатформенных в том числе (C#, java)

вот навскидку, пример, утилиты на JAVA. ESPlorer популярнейшая утилита в определенных кругах. Write once, run anywhere.

когда ресурсы не ограничены, некоторым людям хочется странного... забить гвоздь микроскопом, например.

у HTML есть только один уникальный плюс, за счет которого он выживает - распространенность и доставка самого приложения клиенту ислючительно в песочницу для его спокойствия

все остальное(потребляемые ресурсы, удобство редактирования, cовместимость....проч.) одни минусы.

в данном, конкретном случае: доставка нужна? нет. секьюрити песочница нужна, нет, более того мешает.
виден смысл, только если разработчик ничего кроме верстания HTML не знает.
так на этот случай есть мультиплатформенный и куда как более распространенный NodeJS. ну или embedded NodeJS если хочется странного.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 11:14 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 532
Только частично соглашусь. Посмотрите на примеры с главной страницы - интерфейс у ESET, AVAST и других программ сделан на Sciter. На HTML с CSS и скриптами реально проще сделать красивый разнообразный интерфейс на любой вкус, чем в том же самом QT. Я уже перепробовал QT, WxWidgets, fltk, msvc, C#, раньше всё делал на Delphi. Сейчас использую MinGW C++ вместе со Sciter, очень удобно, т.к. на большинство вопросов по HTML/CSS/Javascript можно найти ответы в интернете.

update: программы получаю размером в пару мегабайт (sciter.dll + один exe файл), все HTML ресурсы и картинки упаковываются в exe. Речь идёт об утилитах, которые предоставляются клиенту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 11:36 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1126
Откуда: Китай, Пекин
tmtlib писал(а):
упаковываются в exe. Речь идёт об утилитах, которые предоставляются клиенту.

а кто сказал что у клиента только винда?
вот например как сделан SQLite на JAVA

Изображение

что мы видим?
правильно, под разные платформы упакованные нативные версии SQLite.
которые выбираются автоматически, в зависимости от платформы на которой стартует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 12:45 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1124
cheblin писал(а):
все остальное(потребляемые ресурсы, удобство редактирования, cовместимость....проч.) одни минусы.

+1
Да и вообще компилировать что-то для компа вместо скриптов - это, имхо, в большинстве случаев просто какой-то анахронизм, какие-то субъективные причины, а не объективная необходимость

_________________
less is more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 13:37 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1768
tmtlib писал(а):
Речь идёт об утилитах, которые предоставляются клиенту.

Даже интересно, с какого бодуна вы решили, что если "поставляется клиенту", то это обязательно должна быть только под винду без малейших шансов перенести еще куда-либо без полного переписывания?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 13:43 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1768
tmtlib писал(а):
В последнее время стал активно использовать этот HTML GUI для своих утилит по управлению приборами. Это HTML GUI со скриптами и CSS, который можно использовать с разными языками программирования.

Вот куда более правильное решение: https://electronjs.org
tmtlib писал(а):
sciter.dll на 32 или 64 бита нужно поместить в директорию с откомпилированным проектом

Лучше поместить ее авторам, в любое подходящее отверстие.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 16:45 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 532
Всё зависит от специфики программы. Для одних программ имеет смысл полная мультиплатформенность, для других можно обойтись связкой linux+windows. Sciter работает под linux и mac, недавно были пробы на raspberry pi: https://sciter.com/sciter-on-raspberry-pi-3/. Меня вполне устраивает бесплатная версия без статической линковки. Я использую относительно много программ для разработки, Sciter с моей точки зрения это хороший инструмент для добавления красочного отзывчивого пользовательского интерфейса. Может вы не разобрались в этой библиотеке или спутали её с какой-то другой программой, а может старую версию только смотрели. Сейчас всё работает намного лучше. Если у вас что-то не получается, по мере возможностей отвечу на вопросы как реализовать GUI на Sciter.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 18:04 
Старожил

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 724
tmtlib писал(а):
по мере возможностей отвечу на вопросы как реализовать GUI на Sciter.

а можно примерчик типа - нажали кнопку, в коде на Си "увидели" нажатие и вывели "привет мир" в editbox


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 18:11 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1768
tmtlib писал(а):
Может вы не разобрались в этой библиотеке или спутали её с какой-то другой программой, а может старую версию только смотрели.

Зачем ее вообще смотреть? Что она может предложить такого, чего не может предложить, например, уже упомянутый выше электрон? Который, к тому же, полностью открыт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 18:36 
Старожил

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 724
Sciter vs. Electron
https://sciter.com/forums/topic/sciter-vs-electron/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 19:10 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1768
oleg110592 писал(а):

И что? Объем? Кого он вообще сейчас волнует?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 19:28 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1126
Откуда: Китай, Пекин
oleg110592 писал(а):

мдя. почитал.
оба хуже.

рассуждать про 2 мегабайта vs 140 для приложения которое - HTML GUI - неадекватно...

упорно писать на С++ когда все тоже самое можно на JAVA (ресурсы позволяют) зачем?? чтобы не ставить JRE?
да и ставить не нужно, достаточно просто скопировать и папку указать.
современное JRE - 160 мег, а старое JRE 1.1.4 - 5мег.
зато сразу разгружается будущие разрабы под платформу.

впрочем, пофиг.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 20:43 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 532
oleg110592 писал(а):
tmtlib писал(а):
по мере возможностей отвечу на вопросы как реализовать GUI на Sciter.

а можно примерчик типа - нажали кнопку, в коде на Си "увидели" нажатие и вывели "привет мир" в editbox


Show С++


Show HTML


Откомпилированный вариант (exe+dll): http://www.igrodel.ru/sciterhelloworld.zip
Консольное окно не убирал.

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 21:14 
Старожил

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 724
спасибо - довольно просто


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 21:31 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2414
а то же самое под макось? )
мне нравится идея, когда все пишется нативно. во всяком случае создается ощущение, что оно все лучше вылизано, что ли.. кросс-платформенные штуки какие-то неопрятные. хотя может это просто специфика проектов, а не кросс-платформенность.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 21:40 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 532
В SDK есть примеры bin.ios и bin.gtk. Сам я не проверял под mac/linux, но помню читал на их форуме обсуждали кое-какие различия в обработке кликов мыши.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 03 апр 2018, 22:02 
Старожил

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 724
где берут файл который #include "resources.cpp"
upd
разобрался, тут пример см. файл "pack-resources.bat":
https://www.codeproject.com/Articles/85 ... -scripting
Собрал пример выше в Visual Studio 2012, пришлось добавить в:
Код:
class frame: public sciter::window {
public:
   frame() : window(SW_TITLEBAR | SW_RESIZEABLE | SW_CONTROLS | SW_MAIN | SW_ENABLE_DEBUG, wrc) {}

   BEGIN_FUNCTION_MAP
      FUNCTION_0("cppFunc", cppFunc);
   END_FUNCTION_MAP

   int cppFunc(){
      sciter::dom::element root = get_root();
      sciter::dom::element field1 =  root.get_element_by_id("field1");
      field1.set_text(L"Привет мир! Hello world! ");
#if defined(TARGET_32)
      return 32;
#elif defined(TARGET_64)
      return 64;
#endif
   }
};

работает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Sciter GUI для утилит.
СообщениеДобавлено: 04 апр 2018, 07:09 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 532
по идее достаточно return 0;
MinGW скомпилировал без return, выдал warning:
Цитата:
codeblocks\test\main.cpp:27:5: warning: no return statement in function returning non-void [-Wreturn-type]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

Часовой пояс: UTC + 5 часов


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

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB