wxWidgets 输出日志

    xiaoxiao2021-03-25  81

    方法一:

    转自:  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; }

    转载请注明原文地址: https://ju.6miu.com/read-19318.html

    最新回复(0)