Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxWidgets:集成定制GTK+;小装置_Wxwidgets - Fatal编程技术网

wxWidgets:集成定制GTK+;小装置

wxWidgets:集成定制GTK+;小装置,wxwidgets,Wxwidgets,问题: 如何实现自定义的wxSciter控件,并将其正确放置在标准的wxWidgets控件中? (因此它可以像浏览器窗口一样工作) 已解决: 我在提供以下建议后解决了问题: class NativeWindow : public wxNativeWindow { public: explicit NativeWindow(wxWindow* parent) : wxNativeWindow() { GtkWidget* widget = SAPI

问题:

如何实现自定义的
wxSciter
控件,并将其正确放置在标准的wxWidgets控件中? (因此它可以像浏览器窗口一样工作)

已解决:

我在提供以下建议后解决了问题:

class NativeWindow : public wxNativeWindow
{
public:
    explicit NativeWindow(wxWindow* parent)
        : wxNativeWindow()
    {

        GtkWidget* widget = SAPI()->SciterCreateWindow(SW_CHILD, NULL, NULL, NULL, this->GetHandle());
        g_object_ref_sink(widget);

        // remove Sciter's GTK top-level container
        // to prevent "Can't set a parent on widget which has a parent"
        gtk_container_remove(GTK_CONTAINER(gwindow(widget)), widget);

        SAPI()->SciterLoadFile(widget, WSTR("http://linux.org.ru/"));

        (void)Create(parent, wxID_ANY, widget);
    }

    virtual ~NativeWindow()
    {
        Disown();
    }

};

通常情况下,你应该允许你做你需要很少的努力。您可以在widgets示例中找到一个比文档中给出的更完整的使用示例,请参见其。

查看wxNativeWindow。它应该给你你需要的一切。文档中有一个示例说明了如何做到这一点。但你为什么需要它?wxWidgets具有wxWebView控件,该控件为开发人员提供Web界面。目前的GSoC有一个项目要在wx中进一步集成JS。Sciter并不是一个真正的浏览器。它是一个很小的库,使用HTML5的子集和带有动画的JavaScript的子集来编写桌面应用程序GUI。与wxWebView不同,浏览器引擎保证在所有平台(Windows、macOS、GTK3、soon iOS和Android)上都是相同的。可以将其视为Qt的QML/QtQuick.Vadim,感谢您的快速回复。在Linux发行版上,我们在包存储库中仍然有wxWidgets 3.0,因为3.1没有标记为稳定。wxNativeWindow出现在3.1中,我将尝试使用wxNativeWindow类中使用的方法,并在明天用结果更新此问题。我认为您应该能够基本上采用
src/gtk/nativewin.cpp
并将其放入您的项目中并与3.0一起使用,因此这是值得尝试的,即使我还没有真正测试过它是否有效。