【VTK】VTK隐藏vtkOutputWindow窗口的正确方法

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。

猜你喜欢

转载自blog.csdn.net/qq_37366618/article/details/129365125