1

如何从我的框架中单击按钮获取值?

btnYes = wx.Button(panel, -1, "OK")     
self.Bind(wx.EVT_BUTTON, self.clickYes, btnYes)

def clickYes(self, evt):
       print "clicked Yes"
       self.Close()

每当用户单击是时,我都想获取一个值以检查其他模块。类似确认标志的东西。当用户确认一项时,然后进行其他项。我将使用的确认标志如下:

def my_methodABC():    
    matchList = []
    for x, y in product(d1rows, d2rows):
        if userConfirmedFromWxPythonClickYesButton():
           matchList.append(abc)

    return matchList
4

1 回答 1

0

使用消息对话框。网上有很多例子。这里有一对:

这是一个非常简单的例子:

import wx

########################################################################
class MainFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Test")
        panel = wx.Panel(self)

        btn = wx.Button(panel, label="Ask Question")
        btn.Bind(wx.EVT_BUTTON, self.showMessageDlg)

    #----------------------------------------------------------------------
    def showMessageDlg(self, event):
        """
        Show a message
        """
        msg = "Do you want to continue?"
        title = "Question!"
        style =  wx.YES_NO|wx.YES_DEFAULT|wx.ICON_QUESTION
        dlg = wx.MessageDialog(parent=None, message=msg, 
                               caption=title, style=style)
        result = dlg.ShowModal()
        if result == wx.ID_YES:
            print "User pressed yes!"
        else:
            print "User pressed no!"
        dlg.Destroy()


if __name__ == "__main__":
    app = wx.App(False)
    frame = MainFrame()
    frame.Show()
    app.MainLoop()

如果用户按下是按钮而不是仅仅将消息打印到标准输出,您可能希望调用匹配列表方法。

于 2013-07-11T13:35:31.883 回答