wxPython で nfcカードリーダGUIアプリを作っています。
やりたいことは test.py を実行すると、
-frameが表示され、
-カードリーダにカードをタッチして処理が行って、returnされて値をframeに表示 したいですが、
問題は
-実行するとき最初に、frameが表示されずに、カードリーダにカードをタッチする処理が先に動いていることです。
-ですから、カードをタッチしてからframeが表示されてしまいます。
wxPythonとオブジェクト指向をちゃんと理解しいないと思いますが、教えてください
import wx import nfc from binascii import hexlify import requests class MyFrame(wx.Frame): #create a frame def frameShow(self, parent, msg): wx.Frame.__init__(self, parent) panel = wx.Panel(self) self.quote = wx.StaticText(panel, label=msg, pos=(20, 30)) self.Show() def msg(self): clf = nfc.ContactlessFrontend('usb') tag = clf.connect(rdwr={'on-connect': lambda tag: False}) #省略... card_num = service_return_data[4:20] #省略... # さーばーに 送信してメッセージがreturn headers = {'content-type': 'application/json'} url = 'https://' post_data = "afasdf" + card_num result = requests.post(url, params=post_data, headers=headers) answer = result.text return answer #これを表示したい app = wx.App(False) #create instance frame = MyFrame() #show the frame frame.frameShow(None, frame.msg()) app.MainLoop()
回答には程遠いのでこちらに書かせていただきますが、「frame.frameShow(None, ’’)」とかにすればFrameは表示されますよね?タッチ時のイベントをShowとは別に書く必要があると思います。
回答1件
あなたの回答
tips
プレビュー