wxHtmlWindow LoadFile不显示在wxFrame中

时间:2018-08-01 20:04:45

标签: wxwidgets wxhtmlwindow

我正在使用wxWidgets在Ubuntu Linux上进行开发,但是在wxFrame内的文件系统上显示html文件时遇到问题。弹出wxFrame,但窗口中没有HTML内容。

这是我的OnInit()函数的摘要:

//wxIMPLEMENT_APP(MyApp);
IMPLEMENT_APP_NO_MAIN(MyApp);
IMPLEMENT_WX_THEME_SUPPORT;

bool MyApp::OnInit()
{    
    MyFrame *frame = new MyFrame();

    wxInitAllImageHandlers();
    wxFileSystem::AddHandler( new wxMemoryFSHandler );
    wxFileSystem::AddHandler( new wxInternetFSHandler );

    HtmlWindow * htmlWindow = new HtmlWindow(frame);
    htmlWindow->SetRelatedFrame(frame, "HTML");
    htmlWindow->SetRelatedStatusBar(0);

    wxString htmlFile = wxString("[FULL_PATH]/file.htm");

    wxFileName htmlFileName(htmlFile);
    htmlWindow->LoadFile(htmlFileName));
    frame->Show(true);
    return true;
}

作为一个实验,我用SetPage替换了LoadFile,并看到了wxFrame中的内容:

htmlWindow->SetPage("<html><body>"
                    "<h1>TEST</h1>"
                    "Set Page Works"
                    "</body></hmtl>");

当我将file.htm放在浏览器中时,显示效果很好。由于某些原因,它不想在wxFrame中显示。 如果我有任何遗漏,请告诉我。感谢所有帮助。

如果有人可以发布一个非常简单的wxApp,wxFrame和wxWindow代码,它们仅显示本地htm文件,那就太好了。很久以来,我一直在努力,令人沮丧。

1 个答案:

答案 0 :(得分:1)

显然找不到加载的文件。您是否将其指定为有效的URI,即使用file:///path/file语法?