我成功地用Python编写了一个带有配置对话框的质体,在该对话框中可以选择一个文件。我还成功地读出了选定的值。
但是,我如何使选择持久?我很确定有一些KDE/Qt预定义的函数或方法,但我没有找到有关这方面的文档。
下面是我的代码(可以通过等离子窗口启动):
metadata.desktop:
[Desktop Entry]
Encoding=UTF-8
Name=Config Test
Type=Service
ServiceTypes=Plasma/Applet
X-Plasma-API=python
X-Plasma-MainScript=code/main.py内容/代码/main.py:
# -*- coding: utf-8 -*-
from PyQt4 import QtCore
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
class configTest(plasmascript.Applet):
def __init__(self, parent, args = None):
plasmascript.Applet.__init__(self, parent)
def init(self):
self.setAspectRatioMode(Plasma.IgnoreAspectRatio)
def paintInterface(self, painter, option, rect):
painter.save()
painter.setPen(QtCore.Qt.black)
painter.drawText(rect, QtCore.Qt.AlignLeft, str(self.config('main').readEntry('testEntry')))
painter.restore()
def CreateApplet(parent):
return configTest(parent) 内容/ui/config.ui:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Config</class>
<widget class="QWidget" name="verticalLayoutWidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="KUrlRequester" name="kcfg_testEntry"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>内容/config/main.xml:
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name="configTestrc"/>
<include>kglobalsettings.h</include>
<group name="main">
<entry name="testEntry" type="Url"></entry>
</group>
</kcfg>谢谢大家的帮助!
发布于 2014-03-18 21:13:23
最后,我可以自己回答这个问题。上面的代码实际上是工作的,配置是自动存储的--一旦软件包安装完毕(通过等离子地图)并由等离子桌面工具启动。
当质体是通过等离子窗口启动时,情况就不是这样.
https://stackoverflow.com/questions/20301855
复制相似问题