继承Dialog、 JDialog 获取返回值

实现 setModel(true) 即可。

class MyDialog entend JDialog{

 

private int state;

//...

public int getReturnStatus(){

   return state;

}

 

 }

 

MyDialog dialog = new MyDialog (new javax.swing.JFrame(), true);
        dialog.setModal(true);//设置模式 dialog关闭后才能获取state的值
        dialog.setVisible(true);
        int state = dialog.getReturnStatus();

 

if(state==?){

//do something

}

在使用 wxPython 进行开发时,可以通过以下方式获取返回值: 1. 使用事件绑定: 在 wxPython 中,可以通过事件来处理用户的交互操作。在某个事件的处理函数中,可以设置返回值并在需要的地方获取。例如,假设有一个按钮点击事件,当点击按钮时,设置一个返回值: ```python import wx class MyFrame(wx.Frame): def __init__(self, parent): super().__init__(parent) self.panel = wx.Panel(self) self.button = wx.Button(self.panel, label='Click me') self.button.Bind(wx.EVT_BUTTON, self.on_button_click) def on_button_click(self, event): # 设置返回值 self.return_value = 'Hello, world!' self.Close() app = wx.App() frame = MyFrame(None) frame.Show() app.MainLoop() ``` 在 `on_button_click` 方法中,我们设置了 `self.return_value` 的值为 `'Hello, world!'`。然后通过调用 `self.Close()` 关闭窗口,触发 `wx.EVT_CLOSE` 事件。在需要获取返回值的地方,可以通过访问 `frame.return_value` 来获取返回值。 2. 使用自定义对话框: 可以创建一个自定义的对话框,在对话框中设置返回值,并在需要的地方获取。例如,创建一个简单的对话框类 `MyDialog`: ```python import wx class MyDialog(wx.Dialog): def __init__(self, parent): super().__init__(parent, title='My Dialog') self.panel = wx.Panel(self) self.text_ctrl = wx.TextCtrl(self.panel) self.ok_button = wx.Button(self.panel, label='OK') self.cancel_button = wx.Button(self.panel, label='Cancel') self.ok_button.Bind(wx.EVT_BUTTON, self.on_ok_button_click) self.cancel_button.Bind(wx.EVT_BUTTON, self.on_cancel_button_click) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.text_ctrl, 0, wx.EXPAND|wx.ALL, 10) sizer.Add(wx.StaticLine(self.panel), 0, wx.EXPAND|wx.ALL, 10) button_sizer = wx.BoxSizer(wx.HORIZONTAL) button_sizer.Add(self.ok_button, 0, wx.ALL, 5) button_sizer.Add(self.cancel_button, 0, wx.ALL, 5) sizer.Add(button_sizer, 0, wx.ALIGN_CENTER|wx.ALL, 10) self.panel.SetSizer(sizer) def on_ok_button_click(self, event): # 设置返回值 self.return_value = self.text_ctrl.GetValue() self.EndModal(wx.ID_OK) def on_cancel_button_click(self, event): self.return_value = None self.EndModal(wx.ID_CANCEL) app = wx.App() dialog = MyDialog(None) if dialog.ShowModal() == wx.ID_OK: return_value = dialog.return_value print('Return value:', return_value) dialog.Destroy() app.MainLoop() ``` 在 `MyDialog` 类中,我们设置了一个文本输入框,一个 "OK" 按钮和一个 "Cancel" 按钮。当点击 "OK" 按钮时,设置返回值为文本输入框的内容,并调用 `self.EndModal(wx.ID_OK)` 关闭对话框。当点击 "Cancel" 按钮时,设置返回值为 `None`,并调用 `self.EndModal(wx.ID_CANCEL)` 关闭对话框。在需要获取返回值的地方,可以通过访问 `dialog.return_value` 来获取返回值。 以上是两种常见的方式来获取返回值,根据具体需求可以选择其中一种或者其他方式来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值