Перейти к содержанию
    

Полностью свободные аналоги QT

Пользуемся уже третий год малоизвестным пока TGUI, это элементы управления нарисованные SFML, попроще колнечно чем Qt, но для многих embedded самое то

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 5/29/2023 at 6:23 PM, gridinp said:

Пользуемся уже третий год малоизвестным пока TGUI, это элементы управления нарисованные SFML, попроще колнечно чем Qt, но для многих embedded самое то

Вот дошли руки попробовать.

После Qt первое впечатление от этой штуки - небольшое отторжение.

Вы под Windows ей пользовались?

Есть ли реально работающие примеры на этой библиотеки? 

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

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

На embedded таких проблем наверное не было, там окна статичные.

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

PS: backend SFML-Graphics

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 27.10.2024 в 22:08, C2000 сказал:

На embedded таких проблем наверное не было, там окна статичные.

ну для desktop с переменными размерами она наверное плохо подходит

 

антиалиасинг надо включить в sfml, вот инициализация из нашей программы:

    sf::ContextSettings settings;
    settings.antialiasingLevel = 8;
    char title[100];
    sprintf(title,  "(%d.%s.%s)", atoi(softwareRevYY)-2000, softwareRevMM, softwareRevNum);
    if(fullScreen)
        win = new sf::RenderWindow(sf::VideoMode(displayWidth, displayHeight), title, sf::Style::Fullscreen, settings);
    else
        win = new sf::RenderWindow(sf::VideoMode(displayWidth, displayHeight), title, sf::Style::Close, settings);

она удобна своей простотой, можно просто влепить кнопку в любое место экрана без parent-виджета, но конечно такого сервиса, как пружинки в qt там нет

 

P.S.

да потом же ещё с qt проблема, что для embedded у них своя система лицензирования, в ней нет LGPL и нужно отчислять с каждой установки программы, а не за рабочее мнесто

Изменено пользователем gridinp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, gridinp said:

антиалиасинг надо включить в sfml, вот инициализация из нашей программы:

Спасибо, то что надо!

Еще бы разобраться с автоматическим масштабированием окна при растягивании мыши. И думаю вполне можно пользоваться. 

Google говорит это проблема Windows, которая в SFML не решена. Надо искать обходные пути.

Вроде бы все стандартные компоненты есть, Layout-ы есть(надо пробовать как работает), темы есть - по сути аналог CSS/QSS. Boost signal еще прикрутить(не уверен что под embedded работать будет) и можно MVVP делать. Ну и если что то еще нужно будет можно добавить библиотек. Qt тоже же просто набор множества библиотек в обвертке.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 28.10.2024 в 11:02, C2000 сказал:

Еще бы разобраться с автоматическим масштабированием окна при растягивании мыши. И думаю вполне можно пользоваться.

вот наверное https://www.sfml-dev.org/tutorials/2.6/graphics-view.php#showing-more-when-the-window-is-resized

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, gridinp said:

Похоже всё немного сложнее. 

Проблема как раз в том что sf::Event::Resized возникает только когда отпускаю кнопку мыши.

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

Надо как-то отслеживать текущий размер с переделённой частотой и обновлять если он изменился. 

Но проблема в том что window.getSize(); тоже обновляется только после того как отпустишь мышь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 28.10.2024 в 12:16, C2000 сказал:

Похоже всё немного сложнее. 

Проблема как раз в том что sf::Event::Resized возникает только когда отпускаю кнопку мыши.

ну да похоже, что внутри что-то не то

https://en.sfml-dev.org/forums/index.php?topic=25102.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 minutes ago, gridinp said:

ну да похоже, что внутри что-то не то

https://en.sfml-dev.org/forums/index.php?topic=25102.0

Да и похоже авторы даже не собираются это решать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/28/2024 at 2:33 PM, gridinp said:

ну да похоже, что внутри что-то не то

https://en.sfml-dev.org/forums/index.php?topic=25102.0

Оказалось в SDL3 решили эту проблему - они архитектуру перестроили на колбэки без блокирующего полинга.

Но всё равно как то растягивается всё с подтормаживанием, эту черную область видно если быстро мышкой потянуть, но она потом автоматически заполняется и layout-ы автоматом растягиваются.

Возможно надо что то в настройках SDL подкрутить, для большей плавности/скорости отрисовки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 hours ago, gridinp said:

на github уже sfml 3.0.0-rc1, может что-то сделают

Судя по их обсуждениям у них позиция: это проблема Windows, пусть разработчики Windows исправляют ОС.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 hours ago, C2000 said:

Возможно надо что то в настройках SDL подкрутить, для большей плавности/скорости отрисовки

Использование OpenGL вместо Render решает и  эту проблему.

В итоге на Windows удалось заставить нормально работать только с бэкендом SDL_OPENGL3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...