Я создаю приложение Sailfish (используя последнюю версию Sailfish SDK). У меня проблема с представлением объекта C++ в QML. Он наследует QSettings,
class Settings : public QSettings
{
Q_OBJECT
/**/
public:
explicit Settings() : QSettings("Marcin Mielniczuk", "BigText") {}
~Settings() { qDebug() << "Dying"; }
/**/
};
Я заметил, что деструктор вообще не вызывается. (нет вывода деструктора)
Я создаю объект следующим образом:
import QtQuick 2.0
import Sailfish.Silica 1.0
import BigText 1.0
import "pages"
ApplicationWindow
{
initialPage: MainPage { }
Settings {id: settings}
}
Мой main.cpp:
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QScopedPointer<QGuiApplication> app(Sailfish::createApplication(argc, argv));
qmlRegisterType<Settings>("BigText", 1, 0, "Settings");
QScopedPointer<QQuickView> view(Sailfish::createView("main.qml"));
Sailfish::showView(view.data());
return app->exec();
}
Что я делаю не так?
/edit: текст, который не печатается, не является реальной проблемой - это просто индикатор проблемы. Синхронизация QSettings в деструкторе тоже не работает.
EDIT2: обратите внимание, что ApplicationWindow в я использую Sailfish Silica, а не QtQuick.Controls, и окно отображается нормально. Эти компоненты должны несколько отличаться от стандартных компонентов qt quick.