Với PyQGIS, bạn có thể thay đổi các cài đặt khác nhau, chẳng hạn như làm cho các nhóm trong Bảng điều khiển Lớp (hoặc mục lục) được in đậm:
from PyQt4.QtCore import QSettings
QSettings().setValue("/Qgis/legendGroupsBold", True)
Các cài đặt được viết có thể được nhìn thấy từ các tùy chọn hoặc từ gõ:
QSettings().value("/Qgis/legendGroupsBold")
>>> u'true'
Nhưng nó không được áp dụng. Tôi nghĩ rằng sử dụng
QSettings().sync()
có thể giúp đỡ nhưng tiếc là không. Cách duy nhất để áp dụng nó là vào GUI ( Settings > Options
) sau đó nhấp OKhoặc khởi động lại QGIS.
Có một phương pháp để làm điều này thông qua PyQGIS?
Bối cảnh :
Tôi muốn thêm phần này dưới dạng macro trong tệp dự án để đảm bảo (cho mục đích thẩm mỹ) rằng chỉ tên nhóm được in đậm còn tên lớp thì không. Do đó, sẽ rất lý tưởng nếu QSinstall được áp dụng khi dự án được tải (cài đặt ban đầu sẽ được áp dụng lại khi dự án đóng).
QSettings().setValue("/qgis/legendLayersBold", False)
Tôi nghĩ rằng vấn đề nằm ở dòng này github.com/qgis/QGIS/blob/release-2_18/src/app/iêu
QgisApp::instance()->legend()->updateLegendItemStyles();
nhưng trong một phiên bản trong tương lai có lẽ?