2012-09-09 104 views
3

我有一個wxWidgets GUI程序,並且我希望標準控制檯窗口附加到標準輸出/ etc。要去。wxWidgets圖形用戶界面+控制檯/模擬控制檯(wxTextCtrl?)

如果有人知道如何做到這一點(GUI應用程序和一個控制檯窗口),這將是出色的。但是,從環顧四周,我懷疑這不是直接可能的。

基於this similar thread,我覺得這可以用wxTextCtrl在單獨的wxFrame中進行模擬。如果這是一個很好的方法,那麼有沒有例子可以在任何地方完成?還有其他方法可以做到這一點嗎?

編輯:我期待要麼有(或至少儘可能接近地模擬)控制檯窗口 - 因此,黑背景,白色字符具有固定寬度的字體,等等

回答

1

可以例如重定向std::coutwxTextCtrl使用wxStreamToTextRedirector,但它並不真正代替Windows下的實際控制檯或Unix下的PTY,因爲只有通過std::cout輸出的文本將被重定向,但不會使用printf()或任何其他功能打印任何內容。如果你需要後者,你需要做一些平臺特定的事情,在這種情況下,你應該告訴你使用哪個平臺,以及你需要做什麼。

+0

是的,我確實需要printf(...)。實際上,我想要做的就是讓一個「控制檯」與非GUI程序中提供的控制檯儘可能無法區分。 – imallett

+1

爲此,您需要使用Windows下的普通控制檯,但無法模擬它。只需在連接時將您的應用程序設置爲一個控制檯(/ subsystem:console),並且不要脫離它。請注意,您仍然可以在「控制檯」應用程序中使用GUI類,而不會有任何問題。 –

+0

在控制檯模式下創建時,我總是得到「未解析的外部符號_main」? – imallett

1

我推薦從stdout升級到wxWidgets日誌記錄類,這種方式更加靈活。 Here is an overview.

+0

有沒有使用這些類來模擬控制檯的例子? – imallett

+0

幾個示例應用程序使用日誌記錄類。他們不會「模仿」一個控制檯 - 重點是他們比控制檯更好,更靈活。仔細使用樣式,背景顏色和字體,可以使日誌窗口看起來像您希望的控制檯一樣。 – ravenspoint

+0

隨着wxLogWindow我能夠得到一些工作,但我找不到一種方法來定製它看起來像控制檯。 – imallett