2

vtkOutputWindow を非表示にするにはどうすればよいですか? GlobalWarningDisplayOff() による抑制や出力のファイルへのリダイレクトは行わず、非表示にするだけです。(そして、のようなものを介してしばらくしてから再び表示されますvtkOutputWindow::GetInstance()->DisplayText(" "))。ありがとう。

PS。WindowsでQt guiを使用しています。

PPS。この質問に興味がある人のために、メーリングリストの対応をここに持ってきます (ハイパーリンクはまだ利用できません):

ベル、よし!今、私はあなたが何を意味したのか分かります。あなたが言ったように、おそらくそれを行う最も簡単な方法は、ウィンドウに閉じる信号を送ることでしょう。

vtkWin32OutputWindow リファレンス ( https://www.vtk.org/doc/nightly/html/classvtkWin32OutputWindow.html ) でわかるように、これは「読み取り専用の EDIT コントロール」であるため、そのハンドルを取得できれば、おそらくコントロールできるウィンドウに組み込むことができます。別のより複雑な解決策は、vtkWin32OutputWindow に基づいて、vtkOutputWindow から継承する新しいクラスを作成することですが、コントロールを非表示および表示するコントロールを備えています。敬具、 ルーカス・フルヒト・デセンヴォルヴィメント

ルーカス、返信ありがとう。vtkOutputWindow が非表示になっている間は、「変更を保存」する必要はありません。一般的に、私の質問は、実行時に GUI からこのウィンドウを非表示/表示する方法についてです。vtkOutputWindow クラスはどのウィジェットからも派生していないため、「非表示」や「閉じる」などのメソッドはありません。また、それを破壊することもできません。

vtkOutputWindow *w =  vtkOutputWindow::GetInstance();
w->Delete();
... (redirecting...) 

閉じないでください。クローズシグナルをウィンドウに送信するのが最も簡単な解決策のようです。

よろしくお願いします、ベル。08.08.2018 18:04, lucas.frucht@medilabsistemas.com.br: >

ベル、あなたの質問で私には明確でない点が 1 つあります。vtkOutputWindow が非表示のときに表示されるメッセージを破棄するか、非表示を解除するときに表示するか?

破棄したい場合は/dev/null、Unix ではリダイレクトするか、Windows では nul にリダイレクトし、ウィンドウを再表示したい場合はリダイレクトを削除できると思います。

出力を遅らせたいだけの場合は、メッセージを vtkStringOutputWindow にリダイレクトしてメッセージを文字列に保存し、表示したいときにリダイレクトを削除して、メッセージを保存した文字列を渡して DisplayText を呼び出すことができます。私はこれを試したことはありませんが、私には理にかなっているようです。よろしく、ルーカス・フルヒト。

4

1 に答える 1