Qqt — синтаксический сахар для Qt

в 13:31, , рубрики: c++, qt, метки: ,

Исходники. В сравнении с html, создавать новые окна на Qt сложнее — надо указать и тип окна-«тега», и создать новую переменную, заполнять отдельные поля. В попытке решить эту проблему возникла библиотека Qqt. Например, можно не соблюдать порядок и количество параметров при создании QAction:

Action act(tr("Text"), QIcon(":/iconPath"), tr("tooltip"), QKeySequence("Ctrl+f"));

//или
Action act(QIcon(), QKeySequence(), tr("text"), tr("tooltip"));

//Аналогично при создании кнопок и других элементов:
PushButton btn(QIcon(), tr("text"), tr("toooltip")...);
PushButton btn(QKeySequence(), ...;

//Заполнить поля можно сокращенным синтаксисом:
Action a;
a.text = "";
a.icon = QIcon();
a.toolTip = "";

В примере выше, переменная Action вызывает new QAction, хранит указатель на оригинал, имеет оператор преобразования типа на QAction*, и данный указатель можно использовать в обычной работе — например, в вызове к QObject::connect. Если переменные из этой библиотеки объявлять внутри класса, то обычные вызовы new в конструкторе тоже не требуются, можно приступать сразу к наполнению нужных свойств.

Упрощение наблюдается и в работе с layouts (см документацию). В результате, мне намного удобнее не использовать редактор GUI, а писать сразу код — и не надо переключаться между редактором кода и GUI.

Лицензия BSD, код обновляю редко — исходники в фирме хранятся на другой системе контроля версий, и на git выложена лишь для легализации в BSD-лицензии. После появления Qt под VS 2013, библиотека будет переведена на использование variadic templates вместо текущего перечисления параметров.

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

Автор: neurocod

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js