Pull to refresh

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

Reading time1 min
Views8.5K
Исходники. В сравнении с 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 вместо текущего перечисления параметров.
Tags:
Hubs:
Total votes 17: ↑9 and ↓8+1
Comments6

Articles