[python] získání dat z formuláře

Mix mix na svobodnik.cz
Čtvrtek Březen 26 20:04:18 CET 2009


Dobrý den,
prosím o pomoc, s následujícím problémem. Mám přihlašovací formulář do 
databáze, ale nevím jak udělat to,
že když si formulář naimportuju do mého programu tak jak z něho získat 
údaje, které uživatel zadal.
tento formulář je můj první který dělám ve wxPythonu.
děkuji za pomoc
Pavel

zde je zdrojoví kód.

# -*- coding: cp1250 -*-
import wx

# begin wxGlade: extracode
ID_psw = 3002
ID_usr = 3001
ID_db  = 3000
# end wxGlade

class MyFrame(wx.Frame):
    def __init__(self, db, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds["style"] = wx.CAPTION|wx.CLOSE_BOX|wx.SYSTEM_MENU
        wx.Frame.__init__(self, *args, **kwds)
        self.dbx = ''
        self.set_db = db
        self.set_usr = wx.GetUserName()
        self.set_psw = ""
        self.label_5 = wx.StaticText(self, -1, "Program DC")
        self.label_6 = wx.StaticText(self, -1, "Verze: 
1.0                       Datum: 1.4.2009")
        self.label_2 = wx.StaticText(self, -1, u"Databáze:")
        self.text_ctrl_db = wx.TextCtrl(self, ID_db, self.set_db)
        self.label_3 = wx.StaticText(self, -1, u"ID uživatele:")
        self.text_ctrl_usr = wx.TextCtrl(self, ID_usr, self.set_usr)
        self.label_4 = wx.StaticText(self, -1, "Heslo:")
        self.text_ctrl_psw = wx.TextCtrl(self, ID_psw, self.set_psw, 
style=wx.TE_PASSWORD)
        self.button_2 = wx.Button(self, wx.ID_OK, "")
        self.button_3 = wx.Button(self, wx.ID_CLOSE, "")

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.EVT_BUTTON, self.login, self.button_2)
        self.Bind(wx.EVT_BUTTON, self.konec, self.button_3)
        self.Bind(wx.EVT_TEXT_ENTER, self.db, id=ID_db)
        self.Bind(wx.EVT_TEXT_ENTER, self.usr, id=ID_usr)
        self.Bind(wx.EVT_TEXT_ENTER, self.psw, id=ID_psw)
        self.text_ctrl_psw.SetFocus()
        # end wxGlade

    def __set_properties(self):
        # begin wxGlade: MyFrame.__set_properties
        self.SetTitle("Login")
        _icon = wx.EmptyIcon()
        self.SetIcon(_icon)
        self.SetSize((298, 330))
        self.SetBackgroundColour(wx.Colour(192, 192, 192))
        self.label_5.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 
0, ""))
        self.label_6.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD, 
0, ""))
        self.label_2.SetMinSize((100, 20))
        self.label_2.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD, 
0, ""))
        self.text_ctrl_db.SetMinSize((100, 20))
        self.label_3.SetMinSize((100, 20))
        self.label_3.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD, 
0, ""))
        self.text_ctrl_usr.SetMinSize((100, 20))
        self.text_ctrl_usr.SetFocus()
        self.label_4.SetMinSize((100, 20))
        self.label_4.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD, 
0, ""))
        self.text_ctrl_psw.SetMinSize((100, 20))
        self.text_ctrl_psw.SetFocus()
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        grid_sizer_1 = wx.GridSizer(7, 2, 2, 2)
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_2.Add(self.label_5, 0, 
wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
        sizer_2.Add(self.label_6, 0, 
wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
        sizer_1.Add(sizer_2, 0, wx.EXPAND, 0)
        grid_sizer_1.Add((20, 20), 0, 0, 0)
        grid_sizer_1.Add((20, 20), 0, 0, 0)
        grid_sizer_1.Add(self.label_2, 0, 
wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 2)
        grid_sizer_1.Add(self.text_ctrl_db, 0, wx.ALL, 0)
        grid_sizer_1.Add(self.label_3, 0, 
wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 2)
        grid_sizer_1.Add(self.text_ctrl_usr, 0, wx.ALL, 0)
        grid_sizer_1.Add(self.label_4, 0, 
wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 2)
        grid_sizer_1.Add(self.text_ctrl_psw, 0, wx.ALL, 0)
        grid_sizer_1.Add((20, 20), 0, 0, 0)
        grid_sizer_1.Add((20, 20), 0, 0, 0)
        grid_sizer_1.Add(self.button_2, 0, 
wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 11)
        grid_sizer_1.Add(self.button_3, 0, 
wx.ALL|wx.ALIGN_CENTER_VERTICAL, 10)
        grid_sizer_1.Add((20, 20), 0, 0, 0)
        grid_sizer_1.Add((20, 20), 0, 0, 0)
        sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0)
        self.SetSizer(sizer_1)
        self.Layout()
        self.Centre()
        # end wxGlade

    def login(self, event): # wxGlade: MyFrame.<event_handler>
        print "login"
        self.dbx = [self.text_ctrl_db.GetValue(), 
self.text_ctrl_usr.GetValue(), self.text_ctrl_psw.GetValue()]
        self.Close()
        event.Skip()

    def konec(self, event): # wxGlade: MyFrame.<event_handler>
        print "konec"
        self.Destroy()
        #event.Skip()
       
    def db(self, event): # wxGlade: MyFrame.<event_handler>
        self.text_ctrl_usr.SetFocus()     
    def usr(self, event): # wxGlade: MyFrame.<event_handler>
        self.text_ctrl_psw.SetFocus() 
    def psw(self, event): # wxGlade: MyFrame.<event_handler>
        self.button_2.SetFocus()         

def start(db):
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = MyFrame(db, None, -1, "")
    app.SetTopWindow(frame_1)
    xx = frame_1.dbx
    frame_1.Show()
    app.MainLoop()
    return xx
   
print start("DB")



Další informace o konferenci Python