Easyelectronics.ru

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

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

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

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 542
В последнее время стал активно использовать этот 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
Сообщения: 1436
Откуда: Китай, Пекин
Цитата:
для своих утилит по управлению приборами.

для утилит управления приборами создана туева хуча фреймворков. мультиплатформенных в том числе (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
Сообщения: 542
Только частично соглашусь. Посмотрите на примеры с главной страницы - интерфейс у 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
Сообщения: 1436
Откуда: Китай, Пекин
tmtlib писал(а):
упаковываются в exe. Речь идёт об утилитах, которые предоставляются клиенту.

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

Изображение

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


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

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

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


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

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

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


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

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2474
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
Сообщения: 542
Всё зависит от специфики программы. Для одних программ имеет смысл полная мультиплатформенность, для других можно обойтись связкой 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
Сообщения: 735
tmtlib писал(а):
по мере возможностей отвечу на вопросы как реализовать GUI на Sciter.

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


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

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

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


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

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


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

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

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


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

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1436
Откуда: Китай, Пекин
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
Сообщения: 542
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
Сообщения: 735
спасибо - довольно просто


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

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


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

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


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

Зарегистрирован: 26 авг 2014, 10:34
Сообщения: 735
где берут файл который #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
Сообщения: 542
по идее достаточно 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 часов


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

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


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

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

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