C++ 隐藏vtkOutputWindow
如何隐藏vtkOutputWindow?不受压制 GlobalWarningDisplayOff()或将输出重定向到文件,但仅限于 隐藏(并在一段时间后通过类似于C++ 隐藏vtkOutputWindow,c++,qt,vtk,qvtkwidget,C++,Qt,Vtk,Qvtkwidget,如何隐藏vtkOutputWindow?不受压制 GlobalWarningDisplayOff()或将输出重定向到文件,但仅限于 隐藏(并在一段时间后通过类似于vtkOutputWindow::GetInstance()->DisplayText(“”)的方式再次显示)。谢谢 另外,我在Windows上使用QtGUI PPS。对于那些对这个问题感兴趣的人,我带来了邮件列表通信(hiperlink尚未提供): 贝尔,好的!现在我明白你的意思了。正如你所说,可能最简单的方法是向窗口发送关闭信号 正
vtkOutputWindow::GetInstance()->DisplayText(“”
)的方式再次显示)。谢谢
另外,我在Windows上使用QtGUI
PPS。对于那些对这个问题感兴趣的人,我带来了邮件列表通信(hiperlink尚未提供):
贝尔,好的!现在我明白你的意思了。正如你所说,可能最简单的方法是向窗口发送关闭信号
正如您在vtkWin32OutputWindow reference()上看到的,它是一个“只读编辑控件”,因此,如果您能够获得它的句柄,也许您能够将它合并到您可以控制的窗口中。
另一个更复杂的解决方案是创建一个新类,该类将基于vtkWin32OutputWindow从vtkOutputWindow继承,但带有隐藏和显示控件的控件。
祝你好运,卢卡斯·弗鲁赫特·德森沃尔维门托
卢卡斯,谢谢你的回复。当vtkOutputWindow隐藏时,我不需要“保存更改”。通常我的问题是关于如何在运行时从gui隐藏/显示此窗口。vtkOutputWindow类不是从任何小部件派生的,因此它没有任何像“hide”或“close”这样的方法。也破坏它也无济于事
vtkOutputWindow *w = vtkOutputWindow::GetInstance();
w->Delete();
... (redirecting...)
别关上它。似乎向车窗发送关闭信号是最简单的解决方案
真的,贝尔。
2018年8月8日18:04,卢卡斯。frucht@medilabsistemas.com.br:
>
贝尔,
你的问题中有一点我不清楚。您希望在vtkOutputWindow隐藏时显示的消息被丢弃,还是在取消隐藏时显示
如果希望丢弃它,我想可以在Unix上将其重定向到/dev/null
,或在Windows上将其重定向到nul,并在要取消隐藏窗口时删除重定向
如果您只是想延迟输出,也许可以将消息重定向到vtkStringOutputWindow以将消息存储在字符串上,然后在需要显示时,删除重定向并调用DisplayText传递存储消息的字符串。我从未尝试过这个,但对我来说似乎是合理的。
向你问好,卢卡斯·弗鲁赫特
在Windows上,这可能会起作用(不过我还没有测试过)
vtkSmartPointer outputWindow=vtkSmartPointer::New();
outputWindow->SetSendToStdErr(真);
vtkOutputWindow::SetInstance(outputWindow);
输出消息将被定向到stderr,而不是输出窗口。若要再次启用,请禁用重定向。其他可能的情况包括或删除执行所需操作的错误事件
发布了一个类似的问题。谢谢,但这不是隐藏(关闭)窗口。为了更清楚地说明我的意思,我将回复从信件中复制到了问题中。您是否尝试过将
vtkOutputWindow
子类化?看看一个想法的来源。您可以自己添加hide()
和show()
方法。>查看源代码>查看vtkWin32OutputWindow的源代码以了解想法-是的,看起来像是使用hide方法从OutputWindow继承的子类(显示我们可以通过vtkOutputWindow::GetInstance()->DisplayText(“”
)解决此问题。但我没有尝试,因为我们决定把它留给用户。
vtkSmartPointer<vtkWin32OutputWindow> outputWindow = vtkSmartPointer<vtkWin32OutputWindow>::New();
outputWindow->SetSendToStdErr(true);
vtkOutputWindow::SetInstance(outputWindow);