wxWidgets:集成自定义GTK +小部件

时间:2017-08-17 18:26:34

标签: wxwidgets

问题:

如何正确实现自定义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();
    }

};

1 个答案:

答案 0 :(得分:1)

wxNativeWindow通常应该让您只需很少的努力即可完成所需的工作。您可以找到比使用小部件示例中的文档中给出的更全面的使用示例,请参阅其GTK-specific part