首先重要的是說我是一個業餘程序員。wxPython,使用來自導入類的字段
構建Python中的個人軟件/ wxPython的連接到MySQL數據庫
我的問題:
試圖寫一個形式,將來自導入文件訪問類。 表單在任何時間訪問數據庫上的4個相關表。
這些表中的三(3)總是相同的。第四個可以是兩個表中的一個。
被始終訪問的表:會話,有氧和注意到 可以是變化的表:物理或機
我已經放置在wx.Panel類的數據字段對於上述各表。 mainForm的菜單通過引用物理參數或機器參數來調用輸入表單。相應的表單將顯示其數據字段。
我的問題是我無法訪問這些導入的字段從數據庫加載數據。我的代碼
節:
的MainForm:dailyResultsV2.py
import inputForm as IF
# Menu Event:
高清OnShowBikeRecs(個體經營,事件):
self.bikeedit = IF.inputForm(None, -1, "Bike Record Management", size=(925,650), name="bike")
self.bikeedit.Show()
self.bikeedit.Center()
名爲form:inputForm.py
class inputForm(wx.Frame):
def __init__(self, parent, *args, **kwargs):
wx.Frame.__init__(self, parent, *args, **kwargs)
self.EXERCISE = kwargs['name']
# create a panel
self.panel = wx.Panel(self)
self.panel.BackgroundColour = (200, 230, 250)
self.filterSetup()
self.sessionSection = IFC.tblSession(self.panel,-1)
self.sessionSection.BackgroundColour = (200, 230, 250)
if self.EXERCISE == 'walk':
self.physicalSection = IFC.tblPhysical(self.panel,-1)
else:
self.machineSection = IFC.tblMachine(self.panel,-1)
self.cardioSection = IFC.tblcardio(self.panel,-1)
self.notesSection = IFC.tblNotes(self.panel,-1)
self.buttonSetup()
self.topsizer()
The prec eding類創建一個輸入表單,其中將包含物理表或機器表中的所有字段。
我的問題如何訪問這些字段從數據庫添加數據或更新數據庫。 (一方面注意這是一個體能訓練數據庫)。進口類
例如:inputFormClasses.py
class tblMachine(wx.Panel):
def __init__(self, parent, *args, **kwargs):
wx.Panel.__init__(self, parent, *args, **kwargs)
self.BackgroundColour = (200, 230, 250)
# The columns
# machine_ID - not displayed machine_session_FK - not displayed machine_level - not displayed
# machine_Type_FK machine_Distance machine_AvgSpeed machine_MaxSpeed machine_Duration machine_ODO machine_RunFK - ComboBox
self.runNames = [] # ComboBox List
self.machineLabel_st = wx.StaticText(self, -1, "Machine", style=wx.ALIGN_LEFT)
self.machineType_st = wx.StaticText(self, -1, "Type", style=wx.ALIGN_LEFT)
self.machineType_tc = wx.TextCtrl(self, -1, value="Biking", style=wx.TE_CENTRE)
self.machineDistance_st = wx.StaticText(self, -1, "Distance", style=wx.ALIGN_LEFT)
self.machineDistance_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE)
self.machineAvgSpeed_st = wx.StaticText(self, -1, "Avg. Speed", style=wx.ALIGN_LEFT)
self.machineAvgSpeed_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE)
self.machineMaxSpeed_st = wx.StaticText(self, -1, "Max Speed", style=wx.ALIGN_LEFT)
self.machineMaxSpeed_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE)
self.machineDuration_st = wx.StaticText(self, -1, "Duration", style=wx.ALIGN_LEFT)
self.machineDuration_mtc = masked.TimeCtrl(self, -1, fmt24hr=True)
self.machineODO_st = wx.StaticText(self, -1, "Odometer", style=wx.ALIGN_LEFT)
self.machineODO_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE)
self.machineRun_st = wx.StaticText(self, -1, "Run", style=wx.ALIGN_LEFT)
self.machineRun_cbo = wx.ComboBox(self, -1, choices = self.getRunNames(self.runNames), style=wx.CB_READONLY) # get the list of runs for comboBox
# create machine sizer
self.MachineSizer = wx.GridBagSizer(hgap=5, vgap=5)
如何我訪問例如:self.machineType_tc我的形式?
感謝蘭斯的輸入。對不起,我很遺憾。我沒有問題訪問我的數據庫。我的問題是訪問編程的數據表單。我相信我解決了我自己的問題。要訪問類中的特定變量,我必須在實例化該類的變量前加上控制變量名稱。 (我希望我是這樣說的) –