在 QML 中获取 $HOME 和/或用户名

2024-03-19

我需要知道如何获取用户的用户名和/或主目录。我用 google 搜索了一段时间,但只能找到 C++ 或 BASH 的变量。

如何获取用户名或主目录?我正在用 QML 写作。


这就是我的实现方式:

Qml环境变量.h

#ifndef QMLENVIRONMENTVARIABLE_H
#define QMLENVIRONMENTVARIABLE_H

#include <QObject>

class QQmlEngine;
class QJSEngine;

class QmlEnvironmentVariable : public QObject
{
   Q_OBJECT
public:    
   Q_INVOKABLE static QString value(const QString &name);
   Q_INVOKABLE static void setValue(const QString &name, const QString &value);
   Q_INVOKABLE static void unset(const QString &name);
};

// Define the singleton type provider function (callback).
QObject *qmlenvironmentvariable_singletontype_provider(QQmlEngine *, QJSEngine *);

#endif // QMLENVIRONMENTVARIABLE_H

Qml环境变量.cpp

#include "QmlEnvironmentVariable.h"
#include <stdlib.h>

QString QmlEnvironmentVariable::value(const QString& name)
{
   return qgetenv(qPrintable(name));
}

void QmlEnvironmentVariable::setValue(const QString& name, const QString &value)
{
   qputenv(qPrintable(name), value.toLocal8Bit());
}

void QmlEnvironmentVariable::unset(const QString& name)
{
   qunsetenv(qPrintable(name));
}

QObject *qmlenvironmentvariable_singletontype_provider(QQmlEngine *, QJSEngine *)
{
   return new QmlEnvironmentVariable();
}

Then in main()添加一个呼叫qmlRegisterSingletonType http://qt-project.org/doc/qt-5/qqmlengine.html#qmlRegisterSingletonType-2(或者在你重新实现的QQmlExtensionPlugin::registerTypes() http://qt-project.org/doc/qt-5/qqmlextensionplugin.html#registerTypes方法(如果您正在创建插件):

#include "QmlEnvironmentVariable.h"
#include <QQmlEngine>
// ...
qmlRegisterSingletonType<QmlEnvironmentVariable>("MyModule", 1, 0,
    "EnvironmentVariable", qmlenvironmentvariable_singletontype_provider);

最后,在 QML 中使用它,如下所示:

import MyModule 1.0
Item {
  Component.onCompleted: console.log("My home directory: " + EnvironmentVariable.value("HOME"))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 QML 中获取 $HOME 和/或用户名 的相关文章

  • 为 QML TreeView 创建模型

    我正在尝试使用 QML TreeView 模型 Qt 的示例不包括如何创建模型 我读了这个post https stackoverflow com questions 40433038 qml treeview not updating a
  • 使用 QQuickImageProvider 的正确方法是什么?

    我需要动态选择 qpixmaps 以显示在 QML 图像项中 该 qpixmaps 应该从源 qpixmap 中裁剪出来 我将从 QML 文件中设置它 我希望它们能够根据 QML 的第一个需求被 C 代码裁剪并缓存以供将来使用 对于动态图像
  • 从 QML 生成 KeyEvent

    如何生成 KeyEvent 我必须显示 Keys onPressed 的功能以及从虚拟键盘生成的事件 那么 当我的虚拟键盘事件生成时 我可以假装生成按键事件吗 我只能找到如何从 Qt 将KeyEvents 发送到 QML 但我想从 QML
  • 如何设置组合框宽度以适合最大的项目

    我希望我的ComboBox必须适应其width到最长的String Item我的清单中 代码示例 ComboBox model Banana Apple ThisIsTheLongestWordThatIHave Coconut 知道如何做
  • 自定义 QML 模块部署到 Android:缺少 QML 依赖项

    我正在开发一个包含一些特殊类型的自定义 QML 模块 我们称之为 MyModule 它用作其他应用程序项目的预编译库 即源代码对它们不可用 它通过 import MyModule 1 0 设置必要的导入路径等来使用 该模块包含基于 C 的
  • 设置Loader项目属性

    In the context https stackoverflow com questions 33513546 delegate folderlistmodel in tableview文件管理器 我有一个TableView组件保存在文
  • 按索引列出的 QML 模型数据

    我有基于 QAbstractListModel 的模型 class RecordModel public QAbstractListModel QQmlContext ctxt engine rootContext ctxt gt setC
  • Q_PROPERTY NOTIFY 信号及其参数

    我有写 propertyChanged 的习惯signals 带参数 这样接收端就不需要调用Q PROPERTY s READ明确地发挥作用 我这样做是出于清晰的考虑 并且假设在 QML 数据绑定情况下 不需要对 getter 进行 昂贵
  • Qt、QML 和 Windows 8 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直对Qt框架引入的QML很好奇 但从未有机会使用它 但现在随着 Windows 8 的到来 基于旧式小部件的界面将变得过时 只是我
  • 从 QML 实例化 C++ 对象会产生巨大的内存使用开销

    实例化一个QObjectC 堆中的派生类为每个对象提供了大约 160 个字节 通过注册相同的对象qmlRegisterType 用于从 QML 创建并通过以下方式动态创建对象createObject 每个对象给我 2000 多个字节 这是完
  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • QT/QML Android App,点击通知栏时打开应用程序

    我为 Android 应用程序制作了一个 QT 当我单击平板电脑中上面看到的按钮通知栏时 但是 如果单击通知 我的应用程序将打开 聚焦 不知道 并显示黑色窗口 简单来说怎么做呢 我的代码是 package org ays operation
  • QML 连接:不推荐使用连接中隐式定义的 onFoo 属性

    升级到 Qt 5 15 时收到以下错误消息 QML Connections Implicitly defined onFoo properties in Connections are deprecated Use this syntax
  • 如何将枚举类传递给 QML?

    我正在学习QML with Qt并在通过时遇到一些麻烦enum class to qml 当我使用信号时int参数 一切正常 代码运行完美 But 麻烦就在这里 如果我使用信号与一些enum class我有参数undefinedqml 信号
  • 在 Windows 上以 QML 播放 RTSP 视频

    我正在尝试将 QML 中的 RTSP 流播放到视频标签中 如下所示 Repeater model 8 Video Layout fillWidth true Layout fillHeight true fillMode VideoOutp
  • 为什么anchors.centerIn不适用于Column元素?

    我有这段 QML 代码 Column spacing units gu 2 anchors fill parent centerIn parent Row spacing units gu 4 Row spacing units gu 4
  • MapItemView 在 dataChanged 信号后不会更新

    我正在使用 QMLMapItemView使用 C 的组件QAbstractListModel基于模型 这MapItemView当模型重置时 或者每当添加新项目或删除现有项目时 工作正常 但是 那MapItemView不反映对已添加项目的更改
  • 在另一个中使用 QAbstractListModel

    我在尝试使用 Qt QML 为我的应用程序开发数据模型时遇到问题 我已经用过一个QAbstractListModel能够将海关数据模型从 C 传递到 QML 并且它对于简单模型 例如基于字符串和布尔的模型 来说就像一个魅力 但现在我需要建立
  • { Qt5.0.2/QML/QtQuick2.0/C++ } 运行没有错误的示例项目? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的设置是Qt5 0 2 MinGW 32位 我在寻找 Qt5 0 2 QML QtQuick2 0 C 代码项目示例 不是Qt Qu
  • QML 中可重用的字体属性[重复]

    这个问题在这里已经有答案了 在 QML 中 我希望能够定义一组字体属性以进行简单的语义重用 例如 代替 Text text This is a header font family Encode Sans weight Font Black

随机推荐

  • 安装 mysql-community-server 时出现 GPG 密钥问题

    安装时mysql 社区服务器出现以下错误 Command sudo yum install mysql community server Error warning var cache yum x86 64 2 mysql57 commun
  • 我什么时候应该使用 PHP 会话、浏览器本地存储和 JavaScript 对象参数?

    什么时候适合使用现代基于 AJAX 的应用程序存储数据的多种不同方式 我希望能够为开发人员提供一些具体的指导方针 这是我到目前为止所看到的 而且越来越混乱 PHP 服务器端会话 PHP 会话数据可能是存储基于会话的信息的最古老的方法 我经常
  • 带有聚合数据的堆叠条形图 (ggplot2)

    我在使用 ggplot2 时遇到一些主要问题 尽管这对你来说可能是一个非常简单的问题 但我还无法正确回答 我读过一本 ggplot2 书 并且也在 stackoverflow 上查找 最初有一个由因子变量 国家 和二分变量组成的数据集 不幸
  • Visual Studio 链接器警告 LNK4098

    我有一个 dll 项目 在发布配置中构建该项目时 我收到以下警告 MSVCRT lib cinitexe obj 警告 LNK4098 默认库 msvcrtd lib 与其他库的使用冲突 使用 NODEFAULTLIB 库 这只是一个警告
  • C# linq 支持“反连接”语义吗?

    我用谷歌搜索了一段时间 没有找到直接的反连接语义示例 以 C LINQ 为例 如何做到这一点 An 反连接基本上 一组不包含在另一组数据中的数据可以表示为Linq与一个IEnumerable Except像这样 double numbers
  • pod install 给出与 ruby​​ gems 和 libffi 相关的错误

    我使用react native init 创建一个应用程序 并在iOS 文件夹中运行pod install 但是 我收到以下错误 System Library Frameworks Ruby framework Versions 2 6 u
  • 在使用 Rails 保存之前将字符串转换为日期

    对 Ruby 很陌生 我已经被困了好几个小时了 到处寻找也找不到答案 所以我使用 Rails gem 的引导日期选择器 因为我更改了日期选择器的日期格式 所以它不会存储在数据库中 猜测这是因为 simple form 输入被用作字符串 以避
  • 如何使用 ajax 请求发送 Twitter OAuth 访问令牌?

    我想在使用 OAuth 通过 用 twitter 签名 进行身份验证后加载用户的主页时间线 我正在使用这个库来处理身份验证部分https github com jmathai twitter async https github com j
  • 登录 WordPress 网站时如何显示用户的用户名?

    当用户登录到我的 WordPress 网站时 我希望我的网站标题显示 登录身份 我不知道如何回显当前用户的用户名 这是我得到的代码
  • 改变python shell的背景颜色

    例如 是否可以将 Python Shell 的背景颜色从白色更改为黑色 我确实找到了如何更改文本颜色 但不知道如何更改背景颜色 我是在Windows下运行的 有什么建议么 如果您指的是 IDLE 我通过此链接执行了这个简单的步骤 适用于 u
  • 使用列表理解在列表元素前面添加前缀

    有一个这样的列表 foo spam bar 使用列表理解是否可以获取此列表作为结果 foo ok foo spam ok spam bar ok bar In 67 alist foo spam bar In 70 prefix elt f
  • 如何使用 JavaScript 打开新选项卡/窗口?

    客观的 我想在新选项卡 窗口中打开 URLEXACT与 target blank 相同的方式 Code 我正在使用触发以下 JavaScript 的 PHP 条件 我的问题 window open 是不一样作为 target blank 超
  • 为什么 Java 源文件要进入目录结构?

    假设我正在创建一个包含以下类的 Java 项目 com bharani ClassOne com bharani ClassTwo com bharani helper HelperOne com bharani helper suppor
  • 如何从泽西岛 1.0 迁移到泽西岛 2.0?

    我正在尝试升级到 Jersey 2 0 但遇到了很多麻烦 因为 Jersey 的 groupIds 和artifactIds 已完全更改 并且我在 中找不到迁移计划泽西岛文档 https jersey java net nonav docu
  • Google Play 商店的 RSS 源

    Apple 应用程序商店为您提供 RSS 源 以便将提交到应用程序商店的最新应用程序发送到您最喜欢的源阅读器中 我想知道 google play 商店是否也有 RSS feed 可以让你做同样的事情 Thanks 不 他们不提供任何供第三方
  • 您能否提供一些与在项目中使用的人工智能相关的主题想法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • scala slick 一对多集合

    我有一个数据库 其中包含具有一对多注册关系的活动 目标是获取所有活动及其注册列表 通过创建带有注册的活动的笛卡尔积 获取该数据所需的所有数据都已存在 但我似乎找不到一个好的方法来将它正确地放入 scala 集合中 让我们输入 Seq Act
  • 如何为来自react js中的api的动态表单字段设置常规onchange?

    我正在使用 React 中的表单 我面临的挑战是每当我为输入字段设置 onchange 处理程序时 它都会更改我拥有的所有输入字段的值 表单输入字段已映射并且来自 api 我想要的是一个通用的更改处理程序来管理所有输入字段 import R
  • Spring boot中如何配置gson?

    Spring Boot 2 在application yml中 http converters preferred json mapper gson 现在我用自定义设置编写类Gson public class GsonUtil public
  • 在 QML 中获取 $HOME 和/或用户名

    我需要知道如何获取用户的用户名和 或主目录 我用 google 搜索了一段时间 但只能找到 C 或 BASH 的变量 如何获取用户名或主目录 我正在用 QML 写作 这就是我的实现方式 Qml环境变量 h ifndef QMLENVIRON