python - wxPython - 如何在传入 -1 时获取小部件的 ID?

标签 python wxpython

我今天做了一些 wxPython 工作,我得到了这段代码(我已经删除了不相关的部分):

        def CreateRowOne(self, pan):
            hbox1 = wx.BoxSizer(wx.HORIZONTAL)
            hbox1.Add(wx.Button(pan, -1, "250 Words"), 1, wx.EXPAND | wx.ALL)
            hbox1.Add(wx.Button(pan, -1, "500 Words"), 1, wx.EXPAND | wx.ALL)
            hbox1.Add(wx.Button(pan, -1, "750 Words"), 1, wx.EXPAND | wx.ALL)
            return hbox1

如何获取创建的按钮的 ID,以便我可以将它们绑定(bind)到处理程序?通常,我会这样做:

            button1 = wx.Button(...)
            button2 = wx.Button(...)

            ...

            self.Bind(wx.EVT_BUTTON, self.Blah, button1.GetID())
            self.Bind(wx.EVT_BUTTON, self.Blah2, button2.GetID())

但我没有为任何按钮提供标识符。我是否必须手动分配 ID 号?

最佳答案

你可以通过control.GetID()获取id,但是你不需要获取id来绑定(bind),你可以这样做

self.btn.Bind(wx.EVT_BUTTON, self._onBtnClick)

它是可取的(id 应该是实现细节)并且简短,例如在这个样本中

import wx

app = wx.PySimpleApp()
frame = wx.Frame(None)
btn = wx.Button(frame, -1, "anurag")
btn.Bind(wx.EVT_BUTTON, lambda e:wx.MessageBox("Wow it works"))
frame.Show()
app.SetTopWindow(frame)
app.MainLoop()

关于python - wxPython - 如何在传入 -1 时获取小部件的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1879694/

相关文章:

python - 时间序列分析:How to plot these AR(1) graphs in python?

python - 使用 mechanize 和 beautifulsoup 进行网页抓取 - 无法写入输出文件

python - 从 python 中的正则表达式数组输出中提取非空值

python - Py2Exe- "The application configuration is incorrect."

python - 创建Python .exe文件: py2exe invalid image error

python - 使用numpy读取和操作Fortran有序数组的最佳实践

Python 虚拟环境 (venv) 用户包

python - wxPython wxScrolledWindow 函数引发 TypeError

python - 如何从 CustomTreeCtrl 获取复选框选择

python - wxPython:退出全屏