Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
bool StyleLoader::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if(m_key == QKeySequence(keyEvent->key()))
{
setAppStyleSheet();
return true;
}
}
return QObject::eventFilter(obj, event);
}
watcher.addPath(filename);
connect(&watcher, SIGNAL(fileChanged(const QString&)), this, SLOT(setAppStyleSheet()));
В реализации фильтра ошибка, виляющая на всё приложение.Да, согласен. Спасибо.
Добавление QFileSystemWatcher можно сделать описав его в заголовочном файле: QFileSystemWatcher watcher,Создавать объекты в заголовочном файле нужно острожно. Каждое включение такого хедера в единицу трансляции создаст отдельный объект.
Каждое включение такого хедера в единицу трансляции создаст отдельный объект.
Чтобы подключить инструмент к приложению, достаточно написать одну строчку где-нибудь в main()
StyleLoader * loader = new StyleLoader(qApp, filename, key);
Чтобы подключить инструмент к приложению, достаточно написать одну строчку где-нибудь в main()Или где-нибудь еще, это ж очевидно :)
Но если беспокоит чистота кода, то вот ещё утечка памяти:Поясните, где тут утечка. StyleLoader — это QObject. В конструктор базового класса мы передали родителя (qApp), который разрушит всех своих чайлдов, когда у него вызовут деструктор.
В конструктор базового класса мы передали родителя (qApp), который разрушит всех своих чайлдов, когда у него вызовут деструктор.
Отлаживаем Qt Style Sheet