簡體   English   中英

wx.Notebook中的自我刪除頁面

[英]Self delete page in wx.Notebook

我想在筆記本中動態創建和刪除頁面。 在主類中,我成功創建並添加了帶有按鈕的頁面。 這些頁面當然是一個單獨的類,並且內部有一個按鈕。 我知道我可以將按鈕放在筆記本外面,然后從主類中刪除它們,但是我想使用頁面自己的按鈕來自毀整個頁面,因為不再需要它。

抱歉,我沒有發布任何代碼,但我是通過手機發布的。 同樣,這似乎不是一個具體問題,需要一個最小的工作示例。

如您所料,從其自己的事件處理程序銷毀UI對象時,需要格外小心。 當前事件處理程序不僅仍然處於活動狀態,而且隊列中可能還有其他待處理事件,如果目標對象在交付時已被銷毀,則可能會導致崩潰。

最好的辦法是將銷毀操作推遲到當前和可能的未決事件處理程序完成之后,並且除了要執行的銷毀操作之外,UI對象上沒有任何等待要做的事情。 最好的方法是使用wx.CallAfter 它將調用帶有參數的函數,該參數將在下次事件循環清空時提供給您,因此,隱式地沒有其他等待完成或發送給相關UI對象的事情。

對於您而言,可以立即執行以下操作,例如立即從筆記本中刪除頁面並隱藏頁面窗口。 然后使用wx.CallAfter調用某個函數(也許在筆記本類中),該函數調用頁面窗口的Destroy方法並進行其他必要的清理。 我建議拆分這兩組任務的原因不是因為調用該函數會花費很長時間,而是在某些情況下可能需要很長的時間才能在過渡狀態下短暫閃爍,因此外觀不太平滑用戶。

暫無
暫無

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

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