小编Jak*_*sen的帖子

有没有办法检测QT QRunnable对象何时完成?

有没有办法检测QT QRunnable对象何时完成?(除了在run()方法结束时手动创建一些信令事件.)

qt multithreading threadpool

6
推荐指数
2
解决办法
2607
查看次数

固定功能管道中的 OpenGL 每像素照明

是否可以在 OpenGL 固定功能管道中启用每像素照明(以便我可以在低细分曲面上有很好的镜面高光)?

opengl lighting

5
推荐指数
1
解决办法
1382
查看次数

RAII国家管理

我需要改变一个州.然后做的事情.然后将状态重置回原来的状态 - 例如:

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建议可以重用的通用状态更改类.这可以避免代码膨胀,前提是它可以替换多个自定义类.我将接受这个答案 - 但我认为正确的方法实际上取决于背景.

c++ raii c++11 c++14

4
推荐指数
2
解决办法
349
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

lighting ×1

multithreading ×1

opengl ×1

qt ×1

raii ×1

threadpool ×1