我在曾经的文章中,讲述了怎样使用U1dbSQLite
offline storage API
来存储应用的一些状态。在这篇文章中,我将介绍怎样使用Qt.labs.settings来存储应用的状态。更加具体的介绍,请參阅链接

首先。我们创建一个最简单的“App with Simple UI”模版应用。并改动文件“main.qml”例如以下:

import QtQuick 2.0
import Ubuntu.Components 1.1
import Qt.labs.settings 1.0 /*!
\brief MainView with a Label and Button elements.
*/ MainView {
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView" // Note! applicationName needs to match the "name" field of the click manifest
applicationName: "com.ubuntu.developer.liu-xiao-guo.settings" /*
This property enables the application to change orientation
when the device is rotated. The default is false.
*/
//automaticOrientation: true // Removes the old toolbar and enables new features of the new header.
useDeprecatedToolbar: false width: units.gu(50)
height: units.gu(75) Page {
title: i18n.tr("Simple") Column {
anchors.fill: parent
anchors.centerIn: parent
anchors.horizontalCenter: parent.center Label {
text: "Please input a string below:"
fontSize: "large"
} TextField {
id: myTextField
text: settings.input
placeholderText: "please input a string" onTextChanged: {
settings.input = text
}
} Button {
text: "Get category"
onClicked: {
console.log("settings category:" + settings.category);
}
}
} Settings {
id: settings
property string input: "unknown"
} Component.onDestruction: {
settings.input = myTextField.text
}
}
}

记得这里我们一定要增加Qt.labs.settings。

我们首先绑定myTextField的值为settings中的input。在程序退出的时候,我们通过例如以下的方式进行存储:

        Component.onDestruction: {
settings.input = myTextField.text
}

在我们的应用中。我们使用例如以下的方法。每当myTextField变化时,我们就存一下。这依赖于我们终于程序的需求是什么样的。

            TextField {
id: myTextField
text: settings.input
placeholderText: "please input a string" onTextChanged: {
settings.input = text
}
}

执行我们的应用。我们会发现,当我们改动myTextField中的值,并退出后。下次启动时。能够看到。上次输入的值被读取,并存放于myTextField中。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVWJ1bnR1VG91Y2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="200" height="300" alt="">

整个測试的源代码在 bzr branch lp:~liu-xiao-guo/debiantrial/settingsqml

使用Qt.labs.settings来存储应用的设置的更多相关文章

  1. QML用Qt.labs.settings实现保存用户设置

    举个简单的例子: main.cpp中设置程序信息 QGuiApplication::setApplicationName("Gallery"); QGuiApplication:: ...

  2. 关于VS2017+Qt5.6.3(msvc2015_64)联合编程Qt project settings界面没有ok,cancel选项的问题

    如题,我在项目开发的过程中,需要添加数据库模块SQL,然后发现VS上QT project settings选项中不能修改添加的模块,也就是对应QT creator中的在.pro文件中添加一句:QT + ...

  3. qt project settings被禁用解决方案

    转载请注明出处:http://www.cnblogs.com/dachen408/p/7422707.html qt project settings被禁用点击不了: 解决方案:需要点击该项目(或者项 ...

  4. iOS开发UI篇—ios应用数据存储方式(偏好设置)

    iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...

  5. ios NSUserDefaults存储数据(偏好设置)

    ios NSUserDefaults存储数据(偏好设置) 1.NSUserDefaults用于存储数据量小的数据,主要是用户配置,但也可以支持存储一些小数据包括:NSString, NSNumber, ...

  6. QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)

    QT在Linux环境下读取和设置系统时间 本文博客链接:http://blog.csdn.NET/jdh99,作者:jdh,转载请注明. 环境: 主机:Fedora12 开发软件:QT 读取系统时间 ...

  7. Qt之界面数据存储与获取(使用setUserData()和userData())

    在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来配置文件.注册表.数据库.或者是server. 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被用到,例 ...

  8. qt中使用sqlite存储数据

    一.sqilte的安装 在Windows上安装SQLite: 请访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件. 您需要下载 sqlite-tools-win32-*.zi ...

  9. Qt之界面数据存储与获取(userData)

    http://blog.csdn.net/u011012932/article/details/52413012#comments

随机推荐

  1. 【转】 C#获取当前程序运行路径的方法集合

    [转] C#获取当前程序运行路径的方法集合 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; resul ...

  2. .NET开源项目一览

  3. 数据库-mongodb-Gridfs

    GridFS是一种将大型文件存储在MongoDB的文件规范: 数据库支持以BSON格式保存二进制对象. 但是MongoDB中BSON对象最大不能超过4MB. GridFS 规范提供了一种透明的机制,可 ...

  4. Fedora 17 无线网卡配置笔记

    转载:http://www.psichen.com/fedora-17-wifi/ 安装并更新完F17后,在网络选项中没有出现无线网,需要自己安装无线网卡驱动.而F17中默认网卡名称从以前的”eth0 ...

  5. [CSS3] Responsive Table -- no more table

    When the screen size is small, we can use "no more table" solution. So instead of render t ...

  6. 取消记录tableView选中效果

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self. ...

  7. GitHub客户端和Shell的基本操作和理解

    GitHub客户端和Shell指令的简单实用 客户端操作, web端操作, shell指令操作. 掌握了这三种操作,基本上就可以很好的运用gitHub了. 创建项目, 可以通过web端进行创建. 可以 ...

  8. Linux开放1521端口允许网络连接Oracle Listener

    症状: 1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动.   lsnrctl status  查看listener状态   lsnrct ...

  9. POJ 1852 Ants O(n)

    题目: 思路:蚂蚁相碰和不相碰的情况是一样的,相当于交换位置继续走. 代码: #include <iostream> #include <cstdio> #include &l ...

  10. Tomcat学习(一)——使用Eclipse绑定Tomcat并发布应用

    1.下载Tomcat 官网地址:http://tomcat.apache.org/whichversion.html 2.目录结构 bin:脚本目录 启动脚本:startup.bat 停止脚本:shu ...