弹出wxPopupTransientWindow,将wxDialog作为Mac上的父级

时间:2016-10-27 10:21:55

标签: wxwidgets

我有一个带按钮的模态 wxDialogBox 。单击此按钮,我将启动wxPopupTransientWindow。这个 wxPopupTransientWindow 有一些控件,比如wxTextCtrl和wxButton。

这在MSW下完美运行,在Mac上按下按钮 wxPopupTransientWindow 获取弹出窗口但 wxPopupTransientWindow 无法访问。 wxDialogBox 会阻止wxPopupTransientWindow,因为它是模态对话框。

我知道如何才能使 wxPopupTransientWindow 可以访问?

1 个答案:

答案 0 :(得分:0)

此错误已报告(http://trac.wxwidgets.org/ticket/17406

阅读完描述之后,我开始知道如果我将wxPopupWindow / wxPopupTransientWindow创建为modal wxDialog构造函数,那么将添加wxDialog作为其父级。所以不要在modal wxDialog构造函数中创建wxPopupWIndow。

我找到了两种处理问题的方法:

  1. 不要在wxDialog构造函数中创建。在需要时创建wxPopupWindow(例如鼠标悬停,按钮点击等)

  2. 如果想在构造函数中创建一次并在以后多次使用它,请使用 CallAfter 来创建它。 CallAfter将在构造函数调用完成后为下一轮安排 wxPopupWindow 创建。

  3. 我知道这不是一个好的解决方案,但这是我发现的即时解决方案。