mafulechka
mafulechkaJan. 31, 2020, 6 p.m.

Extending Qt Bridge

Content
  1. 1. APIs

Qt Design Studio is the latest offering from the Qt company. It is an easy-to-use design tool that allows designers to import designs from Sketch and Photoshop into Qt, animate and test them on the target hardware, and turn them into QML code that developers can use.

Qt Bridge is a plugin component for design tools such as Photoshop and Sketch. The plugin primarily allows designers to annotate the layers of a design document and export those annotations, along with the assets and DOM of the design document, into an intermediate format that can be imported into QDS. The plugin is developed using Javascript and uses the APIs provided by the design tools.


Qt Bridge plugin version 1.4 and above allows users to write JSX script to extend or customize the behavior of the Qt Bridge plugin for Photoshop. The settings screen allows the user to select their own script. The script is evaluated when the plugin is loaded.

APIs

The following APIs can be defined in a JSX file to customize or extend the behavior of Qt Bridge.

• preExport (documentInstance)

preExport(...) API is called before the PSD document is exported. The document instance is sent as an argument. The user can make changes to the document and, if necessary, undo those changes after the export is complete by defining the postExport(...) API.

• postExport (documentInstance)

postExport(...) API is called after the export of the PSD document. The document instance is sent as an argument. The user can make changes to the document instance. For example, you can undo changes made to a document in the preExport(...) API.

• customQmlId (generateQmlId, psdLayerInstance)

The API customQmlId(...) is called every time a default QML ID is generated for the PSD layer and the user can return a QML ID to be assigned to the layer. The g generatedQmlId parameter is the default QML ID generated by the Qt Bridge plugin for the layer, and the layerInstance parameter is the PSD layer object.

Note Return null to use the default generated QML identifier.

JSX override example:

The following script writes the beginning and end of the exported PSD document to the export.log file inside the home directory. QML identifiers are prefixed with "m_" and document and layer identifiers are removed.

myCustomScript.jsx

var logFile = null

preExport = function (documentInstance) {
    if (openLogFile("~/export.log")) {
        var date = new Date();
        logFile.writeln(date + ": Exporting: " + documentInstance.name);
    }
}

postExport = function (documentInstance) {
    if (logFile) {
        var date = new Date();
        logFile.writeln(date + ": Exporting done: " + documentInstance.name);
        logFile.close();
    }
}

customDefaultQmlId = function(generatedQmlId, psdLayerInstance) {
    return "m_" + generatedQmlId.replace(/_[0-9]*_[0-9]*$/g, "");
}


function openLogFile(path) {
    logFile = new File(path);
    var fileCreated = false;
    return logFile.open("w");
}
We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Lz

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:70points,
  • Rating points1
РК

Qt - Test 001. Signals and slots

  • Result:84points,
  • Rating points4
Last comments
k
kmssrFeb. 8, 2024, 3:43 p.m.
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVADec. 25, 2023, 7:30 a.m.
Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
J
JonnyJoDec. 25, 2023, 5:38 a.m.
Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
G
GvozdikDec. 18, 2023, 6:01 p.m.
Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Now discuss on the forum
BlinCT
BlinCTJune 24, 2024, 10 p.m.
Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
Evgenii Legotckoi
Evgenii LegotckoiJune 24, 2024, 12:11 p.m.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
BlinCT
BlinCTMay 5, 2024, 2:46 a.m.
Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
Evgenii Legotckoi
Evgenii LegotckoiMay 2, 2024, 11:07 a.m.
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
IscanderChe
IscanderCheApril 30, 2024, 1:22 a.m.
Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…

Follow us in social networks