Блог им. semiletov → мысли о переходе на Qt5
Сейчас меня заранее интересует лишь некоторые аспекты переноса своих программ на Qt5. Например — модуль QtSVG объявлен deprecated и его хотели вообще убрать, но потом решили оставить — причем сообщили об этом весьма невежливо. А причина для deprecated была, по словам разработчиков, такой — у команды Qt не было умения и желания поддерживать этот модуль. Напомню, что…
QtSVG — важная часть Qt, позволяющая рендерить SVG средствами самой Qt. Все векторные иконки, кнопочки — это всё благодаря QtSVG. QtSVG поддерживает лишь небольшую, основую часть стандарта SVG, но и этого многим программистам достаточно. Однако разработчики Qt решили убрать QtSVG и навязать для рендеринга SVG функции WebKit. В блоге любопытно было читать, как разработчики Qt «ценят» мнение программистов, использующих их продукт.
Однако, для меня будущее QtSVG остается туманным, а поскольку WebKit я использовать не намерен (он мне не нужен), то вместо векторных глифов на кнопках придется делать PNG.
Далее. Модуль QtScript объявлен deprecated. Конечно, зачем в Qt QtScript, если появилась QML. Вот только не нужна мне QML. Впрочем, из QtScript я использовал функцию evaluate — вместо эдакого встроенного калькулятора. Например:
В Qt я мог бы вместо этого использовать пресловутый QWebKit, ибо в классе QWebFrame есть функция:
Но — я не буду использовать WebKit. Мне НЕ НУЖЕН веб-браузер в моих программах. Поэтому я сейчас пишу простенькую «считалку» — вычислитель выражений.
Я подозреваю, что основные косяки при переходе на Qt5 возникнут со «своими» виджетами, которые рисуют себя через QPainter. Я также подозреваю, что придется вспоминать GTK.
QtSVG — важная часть Qt, позволяющая рендерить SVG средствами самой Qt. Все векторные иконки, кнопочки — это всё благодаря QtSVG. QtSVG поддерживает лишь небольшую, основую часть стандарта SVG, но и этого многим программистам достаточно. Однако разработчики Qt решили убрать QtSVG и навязать для рендеринга SVG функции WebKit. В блоге любопытно было читать, как разработчики Qt «ценят» мнение программистов, использующих их продукт.
Однако, для меня будущее QtSVG остается туманным, а поскольку WebKit я использовать не намерен (он мне не нужен), то вместо векторных глифов на кнопках придется делать PNG.
Далее. Модуль QtScript объявлен deprecated. Конечно, зачем в Qt QtScript, если появилась QML. Вот только не нужна мне QML. Впрочем, из QtScript я использовал функцию evaluate — вместо эдакого встроенного калькулятора. Например:
QScriptEngine e;
QScriptValue v = e.evaluate ("2+2");
qDebug() << v.toString();
В Qt я мог бы вместо этого использовать пресловутый QWebKit, ибо в классе QWebFrame есть функция:
QVariant QWebFrame::evaluateJavaScript ( const QString & scriptSource )
Но — я не буду использовать WebKit. Мне НЕ НУЖЕН веб-браузер в моих программах. Поэтому я сейчас пишу простенькую «считалку» — вычислитель выражений.
Я подозреваю, что основные косяки при переходе на Qt5 возникнут со «своими» виджетами, которые рисуют себя через QPainter. Я также подозреваю, что придется вспоминать GTK.
- 0
- semiletov
- 09 сентября 2011, 23:37
Тролли охотно и часто отвечают на новые вопросы приглашаю Вас к прочтению и дискуссии в блоге Троллей.
Думаю неплохо будет сделать заметку по мотивам Ваших исследований.
И 5.х обречена… ничто не вечно под луной… :D
Есть простое решение Вашей проблемы — используйте Qt 4.x, он ещё долго будет поддерживаться (хотя бы и форком). Что касается ветки 5.х, к весне 2012 будет точно известно какие из изменений будут жизнеспособными.
Мне бы очень хотелось, чтобы QWebKit2 и
2. QtScript «Deprecated Reasoning: flawed design, being replaced by a better design.»
Я уже упоминал что под одним API, согласно плану, будут собраны разные скрипт движки. Как писали Тролли — QtScript просто не был предназначен для этой цели. Писали, если мне не изменяет память в начале 2010 года.
WebKit != JavaScriptEngine + HTMLRenger. WebKit == HTMLRenger. Именно эту идею стараются реализовать Тролли в своих API. В прошлом году довольно много обсуждали и писали QWebKit.
2. QtScript — отказ от него обусловлен приходом ко власти QML.
2. Ваша фраза звучит, как тезис который Вы в состоянии доказать. Объясните каким образом QML враждует с идеей QtScript.
2. Я не буду вам ничего доказывать. Кроме того, я не говорил, что QML враждует с QtScript.
ну что за истерикаТолкование:
libqalculate —
muparser —