有没有办法检测QT QRunnable对象何时完成?(除了在run()方法结束时手动创建一些信令事件.)
是否可以在 OpenGL 固定功能管道中启用每像素照明(以便我可以在低细分曲面上有很好的镜面高光)?
我需要改变一个州.然后做的事情.然后将状态重置回原来的状态 - 例如:
auto oldActivationOrder = mdiArea->activationOrder();
mdiArea->setActivationOrder( QMdiArea::StackingOrder );
mdiArea->cascadeSubWindows();
mdiArea->setActivationOrder( oldActivationOrder );
Run Code Online (Sandbox Code Playgroud)
我如何以RAII方式执行此操作?(c ++ 11和/或14)
编辑:谢谢你的所有答案.
有几个建议可以创建一个用于处理状态更改的自定义类(BoBTFish,mindriot,Mattias Johansson).这个解决方案似乎很清楚.但是我认为这是一个缺点,它将行数从4增加到20+.如果使用了很多,这将使代码膨胀.也似乎有一个单独的类丢失了一些地方.
Ami Tavory建议使用std :: unique_ptr.这没有代码膨胀问题并维护局部性.但是,正如Ami所指出的那样,它可能不是最易读的解决方案.
sp2danny建议可以重用的通用状态更改类.这可以避免代码膨胀,前提是它可以替换多个自定义类.我将接受这个答案 - 但我认为正确的方法实际上取决于背景.