标签:python qt kde plasma plasmoid
我设法使用Python编写了一个plasmoid,其中包含一个可以选择文件的配置对话框.我还设法读出了所选的值.
但是我怎样才能使选择持久?我很确定有一些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>
内容/配置/ 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>
在此先感谢您的帮助!
解决方法:
最后,我可以自己回答这个问题.上面的代码确实有效,配置自动存储 – 一旦安装了包(通过plasmapkg)并由等离子桌面工具启动.
当等离子体通过等离子体窗口启动时不是这种情况.
标签:python,qt,kde,plasma,plasmoid 来源: https://codeday.me/bug/20190624/1281181.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。