我正在为我在KDE等离子体4中的新面板配置纯qml等离子体样,为此我必须最多使用QT4.7库和Qt.Quick 1.1。是否有可能获取当前用户的全名?是否有任何与PlasmaCore或KSM等相关的等离子体API或任何PlasmaCore数据源引擎,如下所示:
#import org.kde.PlasmaCore 0.1 PlasmaCore
{
Item{
PlasmaCore.DataSource{
engine : "SystemInformation"
connection : "get_user_fullname"
}
}
}或者我应该建立这样的服务?你的建议和想法是什么?
发布于 2015-05-11 16:01:59
我想出来了!我确实创建了自定义数据引擎,它通过qdbus桥提供用户的信息,您可以从这里学习它的基础知识:https://techbase.kde.org/Development/Tutorials/Plasma4/DataEngines @douyw基本上误解了这个问题,我不知道是谁在讨论这个问题。不管怎么说,这是新一代qml开发中的一个重要问题,让数据引擎只是简单地制作API。
发布于 2015-05-10 00:35:07
任何东西都可以通过cpp包装器导出到qml上下文中。下面的示例代码片段是从官方医生(Qt4.8)复制的。
1)编写包装类:
在本例中,它导出当前日期时间。你可以用类似的方式出口你的东西。
class ApplicationData : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE QDateTime getCurrentDateTime() const {
return QDateTime::currentDateTime();
}
};2)通过qml上下文导出包装类:
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)中使用它:
import QtQuick 1.0
Text { text: applicationData.getCurrentDateTime() }就这样!
https://stackoverflow.com/questions/30138865
复制相似问题