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