捕获ComboBox中的当前值。 wxPython的

时间:2015-06-19 10:17:39

标签: python-2.7 combobox wxpython

在下面的代码中,我试图在单击“保存”按钮时捕获ComboBox的当前值。

我已经定义了EVT_BUTTON触发的函数,该函数捕获TextCtrl字段中的值,但不适用于ComboBox。

我尝试了一些不同的方法,例如尝试分配给audit_engineer = self.engineer_name。

任何人都可以帮助我吗?

此致 保罗。

class CreateAudit(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.lblname = wx.StaticText(self, label = "Site Name :", pos=(20,60))
        self.site_name = wx.TextCtrl(self, value = "Enter site name here.", pos=(150, 60), size=(140,-1))
        self.lblname = wx.StaticText(self, label = "Job Number", pos=(20,120))
        self.job_number = wx.TextCtrl(self, value = "4 digit number only.", pos=(150, 120), size=(140,-1))

        con = sqlite3.connect("hs_audit.sqlite")
        con.row_factory = lambda cursor, row: row[0]
        myList = con.execute('SELECT engineer FROM T1').fetchall()
        self.lblname = wx.StaticText(self, label="Select Engineer :", pos=(20,180))
        self.engineer_name = wx.ComboBox(self, pos=(150, 180), size=(140,-1)).SetItems(myList)

        self.save_button =wx.Button(self, label="Save", pos=(150, 400))
        self.save_button.Bind(wx.EVT_BUTTON, self.save_details)
        self.Show()

    def save_details(self, event):
        audit_site = self.site_name.GetValue()
        audit_engineer = self.engineer_name.GetValue() #<-- DOES NOT WORK NONE VALUE ERROR
        audit_jobnumber = self.job_number.GetValue()
        print audit_site
        print audit_engineer
        print audit_jobnumber

1 个答案:

答案 0 :(得分:0)

更改

self.engineer_name = wx.ComboBox(self, pos=(150, 180), size=(140,-1)).SetItems(myList)

self.engineer_name = wx.ComboBox(self, pos=(170, 180), size=(170,-1), choices = myList)

诀窍。我认为,首先要考虑复杂的语法。 修复这些小事需要一个年龄,但我很享受学习曲线。