【问题标题】:AuiNotebook, where did the event happendAuiNotebook,事件发生在哪里
【发布时间】:2009-02-23 18:45:11
【问题描述】:

我怎样才能知道事件发生在哪个 AuiNotebook 页面?

编辑:很抱歉。这是一个代码示例。如何找到笔记本页面 从女巫那里点击了鼠标?

#!/usr/bin/python

#12_aui_notebook1.py

import wx
import wx.lib.inspection

class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        wx.Frame.__init__(self, *args, **kwds)

        self.nb = wx.aui.AuiNotebook(self)

        self.new_panel('Pane 1')
        self.new_panel('Pane 2')
        self.new_panel('Pane 3')

    def new_panel(self, nm):
        pnl = wx.Panel(self)
        self.nb.AddPage(pnl, nm)
        self.sizer = wx.BoxSizer()
        self.sizer.Add(self.nb, 1, wx.EXPAND)
        self.SetSizer(self.sizer)

        pnl.Bind(wx.EVT_LEFT_DOWN, self.click)

    def click(self, event):
        print 'Mouse click'
            #How can I find out from witch page this click came from?


class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, '12_aui_notebook1.py')
        frame.Show()
        self.SetTopWindow(frame)
        return 1

if __name__ == "__main__":
    app = MyApp(0)
#    wx.lib.inspection.InspectionTool().Show()
    app.MainLoop()

欧尔扬·彼得森

【问题讨论】:

  • 我们需要更多细节来理解您的问题。
  • 是的,对不起。添加了一些额外的信息和一个代码示例。

标签: python wxpython wxwidgets


【解决方案1】:

对于鼠标点击,您可以假设当前选定的页面是获得点击的页面。我在您的代码中添加了几行。见 cmets

def new_panel(self, nm):
    pnl = wx.Panel(self)
    # just to debug, I added a string attribute to the panel
    # don't you love dynamic languages? :)
    pnl.identifierTag = nm   
    self.nb.AddPage(pnl, nm)
    self.sizer = wx.BoxSizer()
    self.sizer.Add(self.nb, 1, wx.EXPAND)
    self.SetSizer(self.sizer)

    pnl.Bind(wx.EVT_LEFT_DOWN, self.click)

def click(self, event):
    print 'Mouse click'
    # get the current selected page
    page = self.nb.GetPage(self.nb.GetSelection())
    # notice that it is the panel that you created in new_panel
    print page.identifierTag

【讨论】:

  • 我确实认为我已经测试了所有这些,但我显然没有。 GetSelection() 函数给了我我想要的,即当前页面的索引。那谢谢啦。是的,动态语言很漂亮。 :)
猜你喜欢
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 2014-05-02
相关资源
最近更新 更多