1

フレームからのボタンクリックから値を取得するにはどうすればよいですか?

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

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

ユーザーが yes をクリックするたびに、他のモジュールでチェックする値を取得したい。確認フラグのようなもの。ユーザーが 1 つのアイテムを確認したら、他のアイテムを実行します。私が使用する確認フラグは次のとおりです。

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

    return matchList
4

1 に答える 1

0

MessageDialog を使用します。ウェブ上にはたくさんの例があります。ここにいくつかあります:

そして、これは本当に簡単な例です:

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 に答える