如何在整个类中声明全局变量?

问题描述 投票:0回答:1

我是python的新手,我正在尝试编写一个程序,该程序通过选定的COM端口连接到Arduino,并不断更新状态(已连接或已断开)

我使用的计时器每1秒更新一次。这里的问题是每次我运行代码时,即使我先前在Ser中声明了它,但都说Ontimer中的on_press没有定义。我该如何解决?

class GuiFrame(wx.Frame):
    def __init__(self,parent,title):
        super().__init__(parent, title = title, size =(950,550))
        self.InitUI()

    def InitUI(self):
        panel = wx.Panel(self)

        self.timer = wx.Timer(self, 1)
        self.timer.Start(100)
        self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)

        st1 = wx.StaticText(panel, label='COM port: ', pos=(5, 5))

        self.text_ctrl = wx.TextCtrl(panel, pos=(5, 30))

        my_btn = wx.Button(panel, label='Enter', pos=(5, 65))
        my_btn.Bind(wx.EVT_BUTTON, self.on_press)

        self.sb = self.CreateStatusBar()

    def on_press(self,event):
        global Ser
        com = self.text_ctrl.GetValue()
        if not com:
            print("Please enter port!")
        else:
            Ser = SerialCom(com,115200)
            self.sb.SetStatusText(Ser.connect())
            time.sleep(1)

    def OnTimer(self, event):
        global Ser
        self.sb.SetStatusText(Ser.status())
python-3.x wxpython
1个回答
0
投票

[...]如何确保始终定义Ser?

© www.soinside.com 2019 - 2024. All rights reserved.