0
私はwxpythonを学んでいて、ボタンについて質問しています。私は、ノートブックページのレイアウトを作る別のクラスを呼び出す、ノートブックが形成される別のクラスを呼び出す、ファイル内にメインクラスを持っています。私は他の人と一緒にプログラミングしているので、誰かをプログラミングの方法で使用しなければならない。wxpython +別のクラスを使用するときにボタンをバインドする方法
私の問題は、「addbutton」をクリックしたときには何もしないということです。多分それは私がボタンと呼ぶ方法と関係がありますか?
"self.notebook.PageOne.addbutton.Bind(wx.EVT_BUTTON、self.on_add_to_plotlist)"
のTx
マイコード:
class TabPanelMicroanalysis(wx.Panel):
def __init__(self, parent, id):
# # general panel information
#wx.Frame.__init__(self, parent, id)
wx.Panel.__init__(self, parent, id)
# list with available measurements + button to add to plot
self.lbltempmeasurements = wx.StaticText(self, label="Available measurements:")
self.tempmeasurements = ObjectListView(self, wx.ID_ANY,style=wx.LC_REPORT|wx.SUNKEN_BORDER)
self.tempmeasurements.SetColumns(microanalysis_options.TempMeasColumndefs)
self.tempmeasurements.CreateCheckStateColumn(0)
self.addbutton = wx.Button(self, wx.ID_ANY, "Add to plot")
class NotebookMA(wx.Notebook):
def __init__(self, parent,id):
wx.Notebook.__init__(self, parent, id)
# Create the first tab and add it to the notebook
self.PageOne = TabPanelMicroanalysis(self, wx.ID_ANY)
self.AddPage(self.PageOne, "Microanalysis name")
class Main(wx.Frame):
#Frame that holds all other widgets
def __init__(self, parent = None, id = -1, notify_channel = "chanMicroanalysis", ** kwargs):
#general panel information
wx.Frame.__init__(self, parent, wx.ID_ANY)
self.SetTitle('Microanalysis')
self.panel = wx.Panel(self, wx.ID_ANY)
pub.subscribe(self.on_message, notify_channel)
# add menubar
self.menubar = menubar_view(self, wx.ID_ANY)
#make notebook
self.notebook = NotebookMA(self.panel, wx.ID_ANY)
self._do_layout()
pub.sendMessage("PyShark", dict(caller=self, module="microanalyse_controller", package="Controllers"))
def _do_layout(self):
self.vsizer = wx.BoxSizer(wx.VERTICAL)
self.vsizer.Add(self.notebook,1,wx.EXPAND)
self.panel.SetSizer(self.vsizer)
self.SetMenuBar(self.menubar)
self.Maximize()
self.Show()
def _do_bindings(self):
#print "testje"
self.notebook.PageOne.addbutton.Bind(wx.EVT_BUTTON, self.on_add_to_plotlist)
# EVENT handlers -------------------------------------------------------------------------------------------------------
def on_message(self, message):
pass
def on_add_to_plotlist(self, event):
objectsAddPlotList = self.notebook.PageOne.tempmeasurements.GetSelectedObjects()
pub.sendMessage(self.notify_channel,
Container(type="EVT_ADD_TO_PLOTLIST", origin=self.notebook.PageOne.tempmeasurements, data=objectsAddPlotList))