4

ファイルを選択できる構成ダイアログを備えた Python を使用して、なんとかプラズモイドを作成することができました。また、選択した値を読み取ることもできました。

しかし、どうすれば選択を永続的にすることができますか? KDE/Qt に事前定義された関数またはそれを実行する方法があることは確かですが、これに関するドキュメントは見つかりませんでした。

これが私のコードです(プラズマウィンドウで開始できます):

メタデータ.デスクトップ:

[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>

すべての助けを前もってありがとう!

4

1 に答える 1

4

最後に、私はこの質問に自分で答えることができます。上記のコードは実際に機能し、構成は自動的に保存されます – パッケージが (plastapkg を介して) インストールされ、Plasma デスクトップ ツールによって開始されるとすぐにです。

これは、プラズモイドがプラズマウィンドウ経由で開始された場合には当てはまりません。

于 2014-03-18T21:13:23.283 に答える