我想知道你是否认为在Qt中使用类似RAII的模式来管理GUI状态是合理的。所谓GUI状态是指以下内容:我有一些小部件(包括鼠标光标状态),我希望在离开某个方法后这些小部件可以(不)可见/启用/更改,而且我不想以这种方式将所有操作都放在一个巨大的try catch块中:
widget1->show();
...
widgetN->show();
try {
...
}
catch(...) {
widget1->hide();
...
widgetN->hide();
throw;
}
widget1->hide();
...
widgetN->hide();
如果我创建一个对象,允许我在其构造函数中关联hide/setEnabled/setCursor函数(可能是boost函数),并在其析构函数中调用此关联函数(假设所有此函数可能抛出的异常都在析构函数中被忽略/丢失),我可以拥有更清晰的代码。这合理吗?我有什么看不到的问题吗?
欢迎任何评论/建议。
提前致谢,
Federico