怎样在Ubuntu手机应用中得到全部的环境变量值
我们在先前的例程中已经通过一些方法得到我们应用的一些环境变量值。这些值有的很实用。比方我们能够得到我们应用所仅仅能訪问的文件夹。在今天的例程中,我们来展示一种方法能够得到应用全部的环境变量。在我们的实际应用中,我们能够通过这些环境变量来做一些事情。另外,在这个例程中。我们也展示了怎样在Qt C++的代码中构造我们的ListView中的model。
我们在先前的例程“Ubuntu
OS应用Runtime Enviroment”已经展示了和我们平台安全相关的一些环境变量。
首先,我们来展示我们所使用的model dataobject:
dataobject.h
#ifndef DATAOBJECT_H
#define DATAOBJECT_H #include <QObject> class DataObject : public QObject
{
Q_OBJECT Q_PROPERTY(QString key READ key WRITE setKey NOTIFY keyChanged)
Q_PROPERTY(QString value READ value WRITE setValue NOTIFY valueChanged) public:
DataObject(QObject *parent=0);
DataObject(const QString &key, const QString &value, QObject *parent=0); QString key() const;
void setKey(const QString &key); QString value() const;
void setValue(const QString &value); signals:
void keyChanged();
void valueChanged(); private:
QString m_key;
QString m_value;
}; #endif // DATAOBJECT_H
dataobject.cpp
#include <QDebug>
#include "dataobject.h" DataObject::DataObject(QObject *parent)
: QObject(parent)
{
} DataObject::DataObject(const QString &key, const QString &value, QObject *parent)
: QObject(parent), m_key(key), m_value(value)
{
} QString DataObject::key() const
{
return m_key;
} void DataObject::setKey(const QString &key)
{
if (key != m_key) {
m_key = key;
emit keyChanged();
}
} QString DataObject::value() const
{
return m_value;
} void DataObject::setValue(const QString &value)
{
if (value != m_value) {
m_value = value;
emit valueChanged();
}
}
这个model dataobject是为了我们能够在ListView中显示我们的key及value。
main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickView>
#include <QProcessEnvironment>
#include <QQmlContext>
#include <QDebug> #include "dataobject.h" int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv); // Try to get all of the env variables here
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); QStringList keys = environment.keys(); QList<QObject*> dataList; foreach (QString key, keys) {
qDebug() << "key: " << key; QString value = environment.value(key);
qDebug() << "value: " << value; dataList.append(new DataObject(key, value));
} QQuickView view;
view.setSource(QUrl(QStringLiteral("qrc:///Main.qml")));
view.setResizeMode(QQuickView::SizeRootObjectToView); QQmlContext *ctxt = view.rootContext();
ctxt->setContextProperty("varModel", QVariant::fromValue(dataList)); view.show();
return app.exec();
}
在上面,我们通过QProcessEnvironment来得到我们全部的环境变量,并把它们装在我们的datalist变量中。
这个datalist将在我们的QML中以varModel的形式訪问。
Main.qml
import QtQuick 2.0
import Ubuntu.Components 1.1
import Ubuntu.Components.ListItems 1.0 as ListItem /*!
\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: "runtime.liu-xiao-guo" /*
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(60)
height: units.gu(85) Page {
title: i18n.tr("Run time variables") Column {
anchors.fill: parent ListItem.Base {
id: header
height: ubuntuLabel.height + runtime.height + units.gu(6) Column {
anchors.left: parent.left
anchors.right: parent.right
anchors.centerIn: parent
spacing: units.gu(2)
Label {
id: ubuntuLabel
anchors.horizontalCenter: parent.horizontalCenter
text: ""
fontSize: "x-large"
}
Label {
id: runtime
anchors.horizontalCenter: parent.horizontalCenter
text: "Runtime Environment"
}
}
} ListView {
height: parent.height - header.height
width: parent.width
model: varModel
clip: true delegate: ListItem.Subtitled {
text: key
subText: value
}
} }
}
}
我们直接使用一个ListView来显示我们的数据。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="200" height="300" alt="" />
怎样在Ubuntu手机应用中得到全部的环境变量值的更多相关文章
- 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版
本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...
- MDK/Keil 中,J-Link调试查看变量值总是显示<not in scope>
转载请注明出处,谢谢. MDK/Keil 中,J-Link调试查看变量值总是显示<not in scope> 原因:编译器把代码优化掉了,直接导致在仿真中变量根本没有分配内存,也就无法查看 ...
- 怎样在Ubuntu手机平台中开发Cordova HTML5应用
我们知道Cordova HTML5应用具有夸平台的特性,同一时候也具有訪问本地一些资源的能力.在今天的这篇文章中.我们将介绍一下怎样创建并执行一个Cordova HTML5的应用到我们的Ubuntu手 ...
- 后台管理遇到的坑一、style中css样式怎么传入变量值
第一.给标签定义style变量 第二.在data中定义 第三.在methods中的方法中给样式赋值
- struts2的标签中得到JSP脚本的变量值
转自:http://www.cnblogs.com/modou/articles/1299024.html 大家先来看一段代码: <% int i=1; %> <s:property ...
- Ubuntu Linux下如何配置Android开发环境
下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...
- maven3.5.0在win10中的安装及环境变量配置
1.maven的下载地址http://maven.apache.org/download.cgi.如下图,下载apache-maven-3.5.0-bin.zip 2.解压缩到自己指定的文件下,mav ...
- Java中jdk安装与环境变量配置
Java中jdk安装与环境变量配置 提示:下面是jdk1.7和jdk1.8的百度网盘链接 链接:https://pan.baidu.com/s/1SuHf4KlwpiG1zrf1LLAERQ 提取码: ...
- Ubuntu 手机 app开发学习0
# 相关网址 http://developer.ubuntu.com/zh-cn/apps/sdk/ 0. 环境搭建 首选需要一个Ubuntu 14.04操作系统.没啥好讲的,直接安装了一个虚拟机. ...
随机推荐
- JMeter------ _time 函数的使用(时间戳、当前时间)
操作步骤: 1.通过函数助手,生成一个_time 函数: 2.如果参数为时间戳,那公式为: ${__time(,)} : 默认该公式精确到毫秒级别, 13位数 ${__time(/1000,)} ...
- office2007/2010/2013输入公式的正确方式
博客中的文章均为 meelo 原创,请务必以链接形式注明本文地址 理工科的学生,写报告.写论文那面需要输入公式,过去大家常用的公式编辑器是mathtype,虽然功能强大,但输入极为不方便,输入个指数. ...
- 用Lucene.net对数据库建立索引及搜索<转>
用Lucene.net对数据库建立索引及搜索 最近我一直在研究 Lucene.net ,发现Lucene.net对数据库方面建索引的文章在网上很少见,其实它是可以对数据库进行索引的,我闲着没事,写了个 ...
- 带有定位当前位置的百度地图web api 前端代码
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta name="viewport& ...
- phpstorm如何进行文件或者文件夹重命名
1.phpstorm的重构 1.1重命名 在phpstorm中,右键点击我们要进行修改的文件,然后又一项重构,我们就可以进行对文件的重命名. 接下来点击重命名进行文件或者文件夹的重新命名. 在框中输入 ...
- PAT L3-002. 堆栈
树状数组,二分. 一堆数字,可以删除栈顶,压入数字,求中位数,可以线段树,也可以树状数组上二分. #include<map> #include<set> #include< ...
- 木材加工(LintCode)
木材加工 有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目至少为 k.当然,我们希望得到的小段越长越好,你需要计算能够得到的小段木头的最大长度. 样例 有3根木头[232 ...
- jdbc 回顾
JDBC实现基本的CRUD示例 private static void insertTest() throws SQLException { String dbURL = "jdbc:mys ...
- Gauss 消元(模板)
/* title:Gauss消元整数解/小数解整数矩阵模板 author:lhk time: 2016.9.11 没学vim的菜鸡自己手打了 */ #include<cstdio> #in ...
- [LOJ6179]Pyh的求和
首先有一个等式是$\varphi(ab)=\frac{\varphi(a)\varphi(b)d}{\varphi(d)}$,其中$d=(a,b)$,这个比较好证,直接按展开式计算可得$\varphi ...