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 sycing も機能しません。
EDIT2: ApplicationWindow は QtQuick.Controls ではなく Sailfish Silica を使用しており、ウィンドウは正常に表示されることに注意してください。これらのコンポーネントは、標準の qt クイック コンポーネントとは多少異なる必要があります。