我有一个带按钮的模态 wxDialogBox 。单击此按钮,我将启动wxPopupTransientWindow。这个 wxPopupTransientWindow 有一些控件,比如wxTextCtrl和wxButton。
这在MSW下完美运行,在Mac上按下按钮 wxPopupTransientWindow 获取弹出窗口但 wxPopupTransientWindow 无法访问。 wxDialogBox 会阻止wxPopupTransientWindow,因为它是模态对话框。
我知道如何才能使 wxPopupTransientWindow 可以访问?
答案 0 :(得分:0)
此错误已报告(http://trac.wxwidgets.org/ticket/17406)
阅读完描述之后,我开始知道如果我将wxPopupWindow / wxPopupTransientWindow创建为modal wxDialog构造函数,那么将添加wxDialog作为其父级。所以不要在modal wxDialog构造函数中创建wxPopupWIndow。
我找到了两种处理问题的方法:
不要在wxDialog构造函数中创建。在需要时创建wxPopupWindow(例如鼠标悬停,按钮点击等)
如果想在构造函数中创建一次并在以后多次使用它,请使用 CallAfter 来创建它。 CallAfter将在构造函数调用完成后为下一轮安排 wxPopupWindow 创建。
我知道这不是一个好的解决方案,但这是我发现的即时解决方案。