PyQGISでは、レイヤーパネル(または目次)のグループを太字にするなど、さまざまな設定を変更できます。
from PyQt4.QtCore import QSettings
QSettings().setValue("/Qgis/legendGroupsBold", True)
設定は、オプションまたは入力から確認できるように書き込まれます。
QSettings().value("/Qgis/legendGroupsBold")
>>> u'true'
しかし、それは適用されません。私は使用すると思った
QSettings().sync()
助けになるかもしれませんが、残念ながらそうではありません。適用する唯一の方法は、GUI(Settings > Options
)に移動し、OKQGISをクリックするか再起動することです。
PyQGISを介してこれを行う方法はありますか?
コンテキスト:
これをプロジェクトファイルにマクロとして追加して、グループ名のみが太字になり、レイヤー名が太字にならないように(美的目的で)します。したがって、プロジェクトがロードされたときにQSettingsが適用されると理想的です(プロジェクトが閉じられたときに初期設定が再適用されます)。
sync()を呼び出して変更をコミットするときに、status()を呼び出しますか?
—
ホワイザー
@whyzar-ありがとう
—
ジョセフ
これは非常に奇妙で、おそらくバグかもしれません
—
フラン・ラーガ
QSettings().setValue("/qgis/legendLayersBold", False)
。同じ問題がこの行にあると思います。github.com/ qgis / QGIS / blob / release-2_18 / src / app /…
可能な方法はあります
—
フランラーガ
QgisApp::instance()->legend()->updateLegendItemStyles();
が、おそらく将来のバージョンでは?
@FranciscoRaga-リンクのおかげで、バグのように見えます。バグレポートを投稿することを考えていましたが、QGIS 3.0が間もなくリリースされるので、この問題が新しいバージョンにまだ存在するかどうかを待ちます=)
—
ジョセフ