Python论坛  - 讨论区

标题:[python-chinese] Re: [python-chi nese] 如何阻止关闭对话框

2005年04月01日 星期五 10:15

Qiangning Hong hongqn at gmail.com
Fri Apr 1 10:15:46 HKT 2005

On Fri, 1 Apr 2005 00:05:36 +0800, Jason Liu <telecomliu at gmail.com> wrote:
> 之前我也采用跟你相似的方式来做,但毕竟这不是标准方法。
> 主要我觉得给wxWindow::wxWindow( )函数加上这样一个参数没什么害处,最多在wxWindow::Validate(
> )里多检验一个Validator而已,也不会影响向下兼容性。

wxWindow里不加validator,我觉得是出于性能的考虑。毕竟只有control才需要validate。

我的代码是从C++的解决方案来的。

如果你是用wxWidgets的C++库的话,标准方法应该是重载wxDialog::OnOK方法。在wxPython里python代码无法直接访问C++的OnOK方法,只能通过EVT_BUTTON来实现,这就需要在EVT_BUTTON的处理函数中实现OnOK的功能。根据文档,wxDialog::OnOK的定义为:

void wxDialog::OnOK(wxCommandEvent& event)
{
        if ( Validate() && TransferDataFromWindow() )
        {
        if ( IsModal() )
            EndModal(wxID_OK);
        else
        {
                    SetReturnCode(wxID_OK);
                    this->Show(FALSE);
        }
        }
}

于是就有了前面的代码。


--
Qiangning Hong
Get Firefox! <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>

- - - -

Thought for the moment:
I WILL NOT TEACH OTHERS TO FLY
I WILL NOT TEACH OTHERS TO FLY
I WILL NOT TEACH OTHERS TO FLY
I WILL NOT TEACH OTHERS TO FLY

        Bart Simpson on chalkboard in episode 9F05

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号