Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Yegor от Август 28, 2016, 10:17



Название: QtScript устарела?
Отправлено: Yegor от Август 28, 2016, 10:17
Всем здравствуйте!

Поставил свежую версию Qt - 5.7.
Во время установки выбрал модуль QtScript. И там этот модуль помечен как deprecated. То есть устаревший. Впрочем, и в более ранних версиях тоже помечен как устаревший.

Вопрос: если эта технология (QtScript) устарела, то что же использовать вместо нее? Какую новую технологию?
Спасибо.


Название: Re: QtScript устарела?
Отправлено: alex312 от Август 28, 2016, 13:00
Предлагают использовать классы из QML. Но модули не эквивалентны по функционалу. Поэтому переходить никто не спешит переходить.


Название: Re: QtScript устарела?
Отправлено: Yegor от Август 29, 2016, 12:05
Опасность в том, что если модуль помечен как deprecated, то он не будет поддерживаться в следующей версии Qt.


Название: Re: QtScript устарела?
Отправлено: Bepec от Август 29, 2016, 12:07
Писать свой велосипед или пользоваться прочими решениями (не Qt).


Название: Re: QtScript устарела?
Отправлено: GreatSnake от Август 29, 2016, 12:52
Писать свой велосипед или пользоваться прочими решениями (не Qt).
Зачем ??? Ведь в 5.0 появился QJSEngine.


Название: Re: QtScript устарела?
Отправлено: Bepec от Август 29, 2016, 13:52
Потому что QJSEngine это qml...
И требует обязательное GUI.


Название: Re: QtScript устарела?
Отправлено: GreatSnake от Август 29, 2016, 14:28
Потому что QJSEngine это qml...
И требует обязательное GUI.
Не требует.


Название: Re: QtScript устарела?
Отправлено: Bepec от Август 30, 2016, 08:43
Признаю, не требует. Глючный креатор не перечитал pro файл :D


Название: Re: QtScript устарела?
Отправлено: Yegor от Август 31, 2016, 13:49
Значит можно использовать QJSEngine. Спасибо большое за информацию!


Название: Re: QtScript устарела?
Отправлено: vipet от Сентябрь 15, 2016, 12:49
Есть ли какая-то возможность выполнять JS-код построчно (трассировать) кроме как с использованием старого и deprecated QtScript модуля и старого JS-движка из него?

И тот же вопрос насчет дебага JS-кода. Какие планы у Qt-шников на этот счет?


Название: Re: QtScript устарела?
Отправлено: GreatSnake от Сентябрь 15, 2016, 13:18
Судя по New Features in Qt 5.7 (http://wiki.qt.io/New_Features_in_Qt_5.7):
Цитировать
Qt QML
  • All debug services now work with QJSEngine rather than QQmlEngine, which allows for non-QML JavaScript debugging or profiling.
  • The JavaScript debug service now supports debugging of multiple QJSEngine instances at the same time.
  • The profiler service can generate much larger traces without running out of memory, and will take much less time to do so now.
  • Custom connectors for debugging and profiling can be loaded with QQmlDebuggingEnabler::startDebugConnector() now.
  • The JavaScript debug service can now evaluate expressions without the QML engine being paused in a breakpoint.
есть.


Название: Re: QtScript устарела?
Отправлено: vipet от Сентябрь 17, 2016, 01:40
GreatSnake,

Отлично, спасибо. Только вот ассистант отстает, не вижу инфы там про это нифига.


Название: Re: QtScript устарела?
Отправлено: vipet от Сентябрь 17, 2016, 02:29
Посмотрел исходники Qt и Creator'a...

API не публичное, поэтому и в доках его нету. Вообще для моих целей слишком усложнено. Мне надо всего лишь чтобы JS-код выполнялся по шагам типа line by line, ну и может значения переменных чтоб можно было посмотреть из кода.

Пока заюзаю видимо старый добрый QtScript. Пусть JS-движок его медленнее, но лишь бы работало.

P.S. Да, вижу что QQmlDebugService и прочие классы, работают теперь с QJSEngine, а не с наследованным от него QQmlEngine. Но все равно привязок к QML там во всех этих debug-related классах дохренища, недаром оно не стало QJSDebugService'ом.