Wx.Dialog子类实例化我的数据库服务器类
选择 | 换行 | 行号
- #Boa:Dialog:DBConnectDialog
- import wx
- import wxdbtools as db
- def create(parent):
- return DBConnectDialog(parent)
- [wxID_DBCONNECTDIALOG, wxID_DBCONNECTDIALOGCANCELBTN,
- wxID_DBCONNECTDIALOGCONNECTBTN, wxID_DBCONNECTDIALOGDATABASETEXTCTRL,
- wxID_DBCONNECTDIALOGPWDTEXTCTRL, wxID_DBCONNECTDIALOGSERVERNAMETEXTCTRL,
- wxID_DBCONNECTDIALOGSTATICTEXT1, wxID_DBCONNECTDIALOGSTATICTEXT2,
- wxID_DBCONNECTDIALOGSTATICTEXT3, wxID_DBCONNECTDIALOGSTATICTEXT4,
- wxID_DBCONNECTDIALOGSTATICTEXT5, wxID_DBCONNECTDIALOGSTATUSTEXTCTRL,
- wxID_DBCONNECTDIALOGUSERNAMETEXTCTRL,
- ] = [wx.NewId() for _init_ctrls in range(13)]
- class DBConnectDialog(wx.Dialog):
- def _init_ctrls(self, prnt):
- # generated method, don't edit
- wx.Dialog.__init__(self, id=wxID_DBCONNECTDIALOG,
- name='DBConnectDialog', parent=prnt, pos=wx.Point(503, 380),
- size=wx.Size(385, 344),
- style=wx.STAY_ON_TOP | wx.DIALOG_MODAL | wx.TAB_TRAVERSAL | wx.SUNKEN_BORDER | wx.DEFAULT_DIALOG_STYLE,
- title='Database Connection Dialog')
- self.SetClientSize(wx.Size(377, 317))
- self.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL, False,
- 'MS Shell Dlg 2'))
- self.SetThemeEnabled(True)
- self.staticText1 = wx.StaticText(id=wxID_DBCONNECTDIALOGSTATICTEXT1,
- label='User Name', name='staticText1', parent=self,
- pos=wx.Point(16, 8), size=wx.Size(63, 16), style=0)
- self.staticText1.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL,
- False, 'MS Shell Dlg 2'))
- self.staticText2 = wx.StaticText(id=wxID_DBCONNECTDIALOGSTATICTEXT2,
- label='Password', name='staticText2', parent=self,
- pos=wx.Point(200, 8), size=wx.Size(55, 16), style=0)
- self.usernameTextCtrl = wx.TextCtrl(id=wxID_DBCONNECTDIALOGUSERNAMETEXTCTRL,
- name='usernameTextCtrl', parent=self, pos=wx.Point(16, 24),
- size=wx.Size(160, 24), style=0, value='barton')
- self.servernameTextCtrl = wx.TextCtrl(id=wxID_DBCONNECTDIALOGSERVERNAMETEXTCTRL,
- name='servernameTextCtrl', parent=self, pos=wx.Point(16, 80),
- size=wx.Size(160, 24), style=0, value='genesis')
- self.staticText3 = wx.StaticText(id=wxID_DBCONNECTDIALOGSTATICTEXT3,
- label='Server Name or IP Address', name='staticText3',
- parent=self, pos=wx.Point(16, 64), size=wx.Size(156, 16),
- style=0)
- self.staticText5 = wx.StaticText(id=wxID_DBCONNECTDIALOGSTATICTEXT5,
- label='Default Database', name='staticText5', parent=self,
- pos=wx.Point(200, 64), size=wx.Size(97, 16), style=0)
- self.pwdTextCtrl = wx.TextCtrl(id=wxID_DBCONNECTDIALOGPWDTEXTCTRL,
- name='pwdTextCtrl', parent=self, pos=wx.Point(200, 24),
- size=wx.Size(160, 24), style=wx.TE_PASSWORD, value='1coolSQL')
- self.databaseTextCtrl = wx.TextCtrl(id=wxID_DBCONNECTDIALOGDATABASETEXTCTRL,
- name='databaseTextCtrl', parent=self, pos=wx.Point(200, 80),
- size=wx.Size(160, 24), style=0, value='Trails')
- self.staticText4 = wx.StaticText(id=wxID_DBCONNECTDIALOGSTATICTEXT4,
- label='Connection Status Log', name='staticText4', parent=self,
- pos=wx.Point(16, 120), size=wx.Size(127, 16), style=0)
- self.ConnectBtn = wx.Button(id=wxID_DBCONNECTDIALOGCONNECTBTN,
- label='Connect', name='ConnectBtn', parent=self, pos=wx.Point(104,
- 280), size=wx.Size(75, 26), style=0)
- self.ConnectBtn.Bind(wx.EVT_BUTTON, self.OnConnectButton,
- id=wxID_DBCONNECTDIALOGCONNECTBTN)
- self.cancelBtn = wx.Button(id=wxID_DBCONNECTDIALOGCANCELBTN,
- label='Cancel', name='cancelBtn', parent=self, pos=wx.Point(200,
- 280), size=wx.Size(75, 26), style=0)
- self.cancelBtn.Bind(wx.EVT_BUTTON, self.OnCancelButton,
- id=wxID_DBCONNECTDIALOGCANCELBTN)
- self.statusTextCtrl = wx.TextCtrl(id=wxID_DBCONNECTDIALOGSTATUSTEXTCTRL,
- name='statusTextCtrl', parent=self, pos=wx.Point(16, 136),
- size=wx.Size(344, 136), style=wx.TE_READONLY | wx.TE_MULTILINE,
- value='')
- self.statusTextCtrl.SetFont(wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL,
- False, 'MS Shell Dlg 2'))
- def __init__(self, parent):
- self._init_ctrls(parent)
- self.dbServer = db.DBServer(self)
- self.dbConnect = self.DBConnect() # Don't call this guy directly (don't keep?)
- if not self.dbConnect:
- self.Show()
- def DBConnect(self):
- user = self.usernameTextCtrl.GetValue()
- password = self.pwdTextCtrl.GetValue()
- host = self.servernameTextCtrl.GetValue()
- dbConnect = self.dbServer.Login(host, user, password)
- database = self.databaseTextCtrl.GetValue()
- if database:
- self.dbServer.Execute("CREATE DATABASE IF NOT EXISTS %s" % database)
- self.dbServer.Execute("USE %s" % database)
- return dbConnect
- def GetDBServer(self):
- return self.dbServer
- def GetDefaultDatabase(self):
- return self.databaseTextCtrl.GetValue()
- def write(self, message):
- self.statusTextCtrl.AppendText("%s\n" %message)
- def OnConnectButton(self, event):
- if self.dbConnect:
- self.dbConnect.close()
- self.dbConnect = self.DBConnect()
- if self.dbConnect:
- self.write("Ready")
- def OnCancelButton(self, event):
- self.Hide()