簡體   English   中英

wxNotebook - 內部 wxPanel - 頁面改變時調用方法

[英]wxNotebook - inner wxPanel - call method when page is changed

我有wxNotebook和幾個wxNotebookPage 每個頁面都有從wxPanel繼承的不同內容。 更改活動頁面時調用wxPanel中的什么方法? 如果我更改面板,我想更新面板內容。

我將類似的功能綁定到正在工作的調整大小事件。

void MyPanel::Init() {
     this->Bind(wxEVT_SIZE, &MyPanel::OnResize, this);
}

void MyPanel::OnResize(wxSizeEvent& ev){
    //do something to update panel
}

注意:這是C++代碼,但編程語言並不重要(可以是Python)。 我將更新解決方案,我只需要相同的邏輯或 wxWidget API 調用。

更改活動頁面時調用 wxPanel 中的什么方法?

面板上沒有調用任何方法。 而是將頁面更改事件發送到筆記本控件。 您可以為此事件設置處理程序,類似於為上面面板上的大小事件設置處理程序的方式。 通常這是在您的框架的構造函數中完成的,如下所示:

MyFrame::MyFrame(...):wxFrame(...)
{
...
    <notebookobject>->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, &MyFrame::OnPageChanged, this);
...
}

...

void MyFrame::OnPageChanged(wxBookCtrlEvent& event)
{
    // do something in response to the page change here.
}

在實際更改頁面之前,還會發送一個頁面更改事件。 頁面更改事件有一個額外的功能,如果您想禁止頁面被更改,您可以在頁面更改處理程序中對事件 object 調用 Veto()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM