Qml settings 需要注意的问题

QML 中使用 Settings 可以保存一些简单的信息,例如用户名,密码,窗口位置,大小等,没有Sqlite那么麻烦,简单易用哦~~~
(环境:Qt5.8  for android ,Windows 7)

 main.qml

  import QtQuick 2.7
  import QtQuick.Window 2.2
  import Qt.labs.settings 1.0
  Window {
      id: window
      width: 800
      height: 600
      visible: true
      Settings {
          property alias x: window.x
          property alias y: window.y
          property alias width: window.width
          property alias height: window.height
      }
  }

Settings 保存了窗口的大小和位置信息,在第一次启动的时候是默认的,第二次启动就是上次保存好的,这里的属性绑定自动完成,因为这个 alias !

在 main 里面还要定义这个程序的Setting 位置,不同得程序可以设置不同的Setting保存位置哦~~~

main.cpp
  #include <QGuiApplication>
  #include <QQmlApplicationEngine>
  int main(int argc, char *argv[])
  {
      QGuiApplication app(argc, argv);
      QQmlApplicationEngine engine;
      app.setOrganizationName("Some Company"); //1
      app.setOrganizationDomain("somecompany.com"); //2
      app.setApplicationName("Amazing Application"); //3
      engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
      return app.exec();
  }

上面的 1,2,3 告知程序Settings的具体位置,确保程序能够读到,否则,Settings 不生效!!

有些时候:

int main(int argc, char *argv[])
{
  QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
  QGuiApplication app(argc, argv);
  QCoreApplication::setOrganizationName("Zongmu");
  QCoreApplication::setOrganizationDomain("zongmutech1.com");
  QCoreApplication::setApplicationName("Vp Car");
  qmlRegisterType<ImageSaver>("Zongmu.ImageSaver", 1, 0, "ImageSaver");
  qmlRegisterType<ZmMapView>("ZmMapView", 1, 0, "MapView");
  qmlRegisterType<QML_POI>("ZmMapView", 1, 0, "POI");
  QQmlApplicationEngine engine;
  engine.rootContext()->setContextProperty("applicationDirPath", QGuiApplication::applicationDirPath());
  engine.load(QUrl(QLatin1String("qrc:/main.qml")));
  if (engine.rootObjects().isEmpty())
    return -1;
  return app.exec();
}


这种写法是必要的 不知道为什么
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值