Czy można domyślnie wyświetlać suwak przezroczystości w oknie Warstwy, tj. Bezpośrednio po dodaniu nowej warstwy, zamiast konieczności ręcznego włączania dla każdej warstwy za pomocą właściwości warstwy?
13
Czy można domyślnie wyświetlać suwak przezroczystości w oknie Warstwy, tj. Bezpośrednio po dodaniu nowej warstwy, zamiast konieczności ręcznego włączania dla każdej warstwy za pomocą właściwości warstwy?
Zostało to krótko wspomniane na forum QGIS - dla programistów, gdzie należy użyć QgsMapLayer :: setCustomPropertylayer, aby włączyć wbudowany widget dla swojej warstwy. Możemy następnie dodać itemAdded
zdarzenie, aby za każdym razem, gdy dodawana była warstwa, była ona automatycznie wyświetlana z widżetem przezroczystości.
Możesz więc użyć czegoś takiego jak w konsoli Python :
def transparency_slider():
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
if layer.customProperty("embeddedWidgets/count") != 1 or layer.customProperty("embeddedWidgets/0/id") != u'transparency':
layer.setCustomProperty("embeddedWidgets/count", 1)
layer.setCustomProperty("embeddedWidgets/0/id", "transparency")
else:
pass
qgis.utils.iface.legendInterface().refreshLayerSymbology(layer)
# Connect "itemAdded" event to "transparency_slider" function
legend = qgis.utils.iface.legendInterface()
legend.itemAdded.connect(transparency_slider)
Testowany na QGIS 2.18.3 dla Win7 64-bit.
Przykład:
Wstawianie kodu do konsoli Pythona i przed dodaniem plików kształtów:
Wynik:
legend.itemAdded.disconnect(transparency_slider)
w konsoli python;)import qgis
;from qgis.core import QgsMapLayerRegistry
w twoim skrypcie :)Istnieje wtyczka o nazwie Przezroczystość rastrowa, która jak sama nazwa wskazuje, otworzy dokowalny panel z suwakami do zmiany przezroczystości wybranej warstwy rastrowej.
Przejdź do Wtyczki> Zarządzaj i instaluj wtyczki - znajdź i zainstaluj, nowa powiązana ikona pojawi się na paskach narzędzi.
źródło