I have a polygon layer on top of a DEM. Is there a way to clip the polygon layer according to elevation, ie the clipped result being only those areas of the polygon layer between x and y altitude?
The result needs to be a vector layer.
I'd try converting the DEM to contours via Raster > Extraction > Contour to help with this clip.
I don't know about the way to do it in one step but here is a 3 step way:
Use Raster / Raster calculator... to get raster 1 / Null with 1 for your altitude interval and null for the rest like:
Use Raster / Conversion / Polygonize (Raster to Polygon) to make polygon(s) from the raster which is area of your altitude interval
Use Vector / Geoprocessing tools / Clip to clip your polygon by polygon from 2. step - area of your altitude interval. That will give you polygon clipped by DEM elevation interval
In theory there is also way to use Contour plugin which has option to generate filled contours (your area for clipping). Advantage is that your clipping area would not be as "pixelated" as area with the approach above. But unfortunately this plugin works only on points. That would involve to convert your DEM into points first and considering bigger raster size Contour plugin might not be able to crunch it in reasonable time or not at all.