wxWidgets 输出日志

方法一:

转自:  https://forums.wxwidgets.org/viewtopic.php?t=1610

创建一个 wxTextCtrl来显示日志:


In a Frames constructor I have 

MyFrame::MyFrame( ...){

...
m_log_textctrl =
       new wxTextCtrl (this, -1, wxEmptyString, wxPoint (0, 250),
             wxSize (700, 100), wxTE_MULTILINE);

  m_logger = new wxLogTextCtrl (m_log_textctrl);
  wxLog::SetActiveTarget (m_logger);
...
}

Now u can use e.g. wxLogMessage() everywhere in your Application, it s output will be written to the above wxTextCtrl ...


方法二:

转自: http://wxwidgets.10942.n7.nabble.com/wxLogWindow-not-get-focus-with-top-level-dialog-does-with-top-level-frame-td88465.html

创建一个 wxLogWindow来显示日志:

bool MyApp::OnInit()
{
	//Init wxLogWindow
	wxString LogTitle(wxString::Format("'%s'  Status Window", wxTheApp->GetAppName().c_str()));
	wxLogWindow *log_window_m = new wxLogWindow(NULL, LogTitle, false, false);// Don't show at start up, don't process outside of frame 
	wxLogMessage(wxT("[%s/%s/%u] '%s' is starting"), __TFILE__,wxString::FromAscii(__WXFUNCTION__).c_str(), __LINE__,wxTheApp->GetAppName().c_str());
	log_window_m->SetVerbose(true); // Normally from wxConfig force it for example
	wxLogVerbose(wxT("[%s/%s/%u] Verbose Logging Enabled"),__TFILE__, wxString::FromAscii(__WXFUNCTION__).c_str(), __LINE__);// Won't show if not enabled 
	log_window_m->Show(true); // Normally from wxConfig force it for example 

	//MyFrame *frame = new MyFrame("Hello World", wxDefaultPosition, wxDefaultSize);
	//frame->Show(true);
	return true;
}




你可能感兴趣的:(wxWidgets)