Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 隐藏vtkOutputWindow_C++_Qt_Vtk_Qvtkwidget - Fatal编程技术网

C++ 隐藏vtkOutputWindow

C++ 隐藏vtkOutputWindow,c++,qt,vtk,qvtkwidget,C++,Qt,Vtk,Qvtkwidget,如何隐藏vtkOutputWindow?不受压制 GlobalWarningDisplayOff()或将输出重定向到文件,但仅限于 隐藏(并在一段时间后通过类似于vtkOutputWindow::GetInstance()->DisplayText(“”)的方式再次显示)。谢谢 另外,我在Windows上使用QtGUI PPS。对于那些对这个问题感兴趣的人,我带来了邮件列表通信(hiperlink尚未提供): 贝尔,好的!现在我明白你的意思了。正如你所说,可能最简单的方法是向窗口发送关闭信号 正

如何隐藏vtkOutputWindow?不受压制 GlobalWarningDisplayOff()或将输出重定向到文件,但仅限于 隐藏(并在一段时间后通过类似于
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);