首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用纯qml linux获取系统、用户信息

如何使用纯qml linux获取系统、用户信息
EN

Stack Overflow用户
提问于 2015-05-09 10:33:22
回答 2查看 885关注 0票数 0

我正在为我在KDE等离子体4中的新面板配置纯qml等离子体样,为此我必须最多使用QT4.7库和Qt.Quick 1.1。是否有可能获取当前用户的全名?是否有任何与PlasmaCore或KSM等相关的等离子体API或任何PlasmaCore数据源引擎,如下所示:

代码语言:javascript
复制
#import org.kde.PlasmaCore 0.1 PlasmaCore
{
  Item{
      PlasmaCore.DataSource{
          engine  : "SystemInformation"
          connection : "get_user_fullname"
      }
  }
}

或者我应该建立这样的服务?你的建议和想法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-11 16:01:59

我想出来了!我确实创建了自定义数据引擎,它通过qdbus桥提供用户的信息,您可以从这里学习它的基础知识:https://techbase.kde.org/Development/Tutorials/Plasma4/DataEngines @douyw基本上误解了这个问题,我不知道是谁在讨论这个问题。不管怎么说,这是新一代qml开发中的一个重要问题,让数据引擎只是简单地制作API。

票数 1
EN

Stack Overflow用户

发布于 2015-05-10 00:35:07

任何东西都可以通过cpp包装器导出到qml上下文中。下面的示例代码片段是从官方医生(Qt4.8)复制的。

1)编写包装类:

在本例中,它导出当前日期时间。你可以用类似的方式出口你的东西。

代码语言:javascript
复制
class ApplicationData : public QObject
{
    Q_OBJECT
public:
    Q_INVOKABLE QDateTime getCurrentDateTime() const {
        return QDateTime::currentDateTime();
    }
};

2)通过qml上下文导出包装类:

代码语言:javascript
复制
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QDeclarativeView view;

    ApplicationData data;
    view.rootContext()->setContextProperty("applicationData", &data);

    view.setSource(QUrl::fromLocalFile("MyItem.qml"));
    view.show();

    return app.exec();
}

3)在qml文件(MyItem.qml)中使用它:

代码语言:javascript
复制
import QtQuick 1.0

Text { text: applicationData.getCurrentDateTime() }

就这样!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30138865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档