Pas une solution parfaite, mais vous pouvez utiliser le générateur de géométrie qui ajoute une ligne visualisée pour représenter l'intersection. Vous pouvez ensuite définir cela pour chevaucher l'entité linéaire d'origine.
Ajoutez une nouvelle couche de symboles en cliquant sur le signe plus et sélectionnez le Geometry generatortype de couche de symboles. Définissez le type geoemtry sur LineString / MultiLineStringet utilisez l'expression suivante:
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
Vous devrez ajouter des détails sur votre polygone spécifique où:
polygonLayer est le nom de votre couche polygonale
fieldName est le nom du champ
value est la valeur d'entité de votre polygone spécifique

Notez que pour colorer la ligne visuelle, vous devrez peut-être le faire à partir de la propriété d' effets Draw :

C'était le résultat (notez que la ligne visuelle ne chevauchait pas complètement la ligne d'origine, j'ai donc légèrement modifié le décalage):

Et sans le polygone:

Éditer:
Si vous souhaitez que cela soit appliqué à chaque entité linéaire intersectant une entité polygonale, accédez à l' éditeur de fonctions et utilisez la fonction suivante (changez le nom de polygon example_2pour qu'il corresponde au nom de votre couche polygonale):
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def func(feature, parent):
polygon_layer = QgsMapLayerRegistry.instance().mapLayersByName( "polygon example_2" )[0]
feat_list = []
geoms = QgsGeometry.fromWkt('GEOMETRYCOLLECTION()')
for polygon_feat in polygon_layer.getFeatures():
if feature.geometry().intersects(polygon_feat.geometry()):
intersection = feature.geometry().intersection(polygon_feat.geometry())
feat_list.append(intersection)
for x in feat_list:
geoms = geoms.combine(x)
return geoms

Cliquez sur Charger, puis accédez à l' onglet Expression et saisissez func(). Espérons que le résultat devrait ressembler à ceci (en utilisant les mêmes propriétés de style mentionnées ci-dessus):
