VTK隐藏vtkOutputWindow窗口
要求隐藏vtkOutputWindow窗口,但是不能把Warning警告和Error错误的信息都给屏蔽了
网上常见的错误方法:
现在百度搜索出来的方法几乎都是在这样做:在main文件中使用vtkOutputWindow::SetGlobalWarningDisplay(0) 屏蔽vtkOutputWindow窗口:
#include <vtkOutputWindow.h>
int main()
{
vtkOutputWindow::SetGlobalWarningDisplay(0);
}
这样做确实能够让vtkOutputWindow窗口不弹出来,但是也会把运行时发生的Warning和Error这些警告都给屏蔽掉,不是指看不到了,而是本来会发生Error的地方,也能顺利通过了,意思是连Error都不会抛出了。所以这种方法会造成很多BUG没法发现,是很严重的问题。
我们实际要的是隐藏窗口,但是出现Error的话,我们也需要程序抛出Error。
正确方法:
其实vtk本身就提供了隐藏vtkOutputWindow的实现案例,官方示例
方法是将Error和Warning的信息输出到日志文件中,取代vtkOutputWindow。
#include <vtkFileOutputWindow.h>
#include <vtkOutputWindow.h>
int main()
{
vtkNew<vtkFileOutputWindow> fileOutputWindow;
fileOutputWindow->SetFileName("output.txt");
vtkOutputWindow::SetInstance(fileOutputWindow);
}
这方法下Error也能正常抛出,也能隐藏vtkOutputWindow。