Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #---------------------------------------------------------------------
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # -*- SQLITE3 GUI DEMO APP -*-
- # -*- Python (2.7.11) -*-
- # -*- wxPython (2.8) -*-
- # -*- Author : DB <dbh4ck@gmail.com> aka <db~@NC> -*-
- # -*- GUI wxPython -*-
- # -*- coded by db~@NC -*-
- # -*- Mar., 2016 -*-
- #---------------------------------------------------------------------
- import os
- import sys
- from wx.lib import sized_controls
- import wx
- if "2.8" in wx.version():
- import wx.lib.pubsub.setupkwargs
- from wx.lib.pubsub import pub
- else:
- from wx.lib.pubsub import pub
- import wx.lib.agw.hyperlink as hl
- import wx, wx.html
- import wx.lib.scrolledpanel
- import wx.grid as grid
- from ctypes import *
- gdi32= WinDLL("gdi32.dll")
- font_path = os.path.abspath("Lato-Medium.ttf")
- print font_path
- print gdi32.AddFontResourceA(font_path)
- class LoginDialog(wx.Dialog):
- def __init__(SELF):
- face = "ProggySquareTT"
- prog_font = wx.TheFontList.FindOrCreateFont(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
- prog_font2 = wx.TheFontList.FindOrCreateFont(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
- prog_label = wx.TheFontList.FindOrCreateFont(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
- prog_btn = wx.TheFontList.FindOrCreateFont(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
- """Constructor"""
- wx.Dialog.__init__(SELF, None, title="Admin Panel",size=(320,250))
- SELF.SetBackgroundColour('#F2EDD8')
- SELF.gb = wx.StaticBox(SELF, -1, 'Admin Panel:' , pos =(5,3),size=(300,200))
- SELF.gb.SetForegroundColour(wx.BLACK)
- SELF.gb.SetFont(prog_font2)
- SELF.gb_sizer = wx.StaticBoxSizer(SELF.gb, wx.VERTICAL)
- # user info
- user_sizer = wx.BoxSizer(wx.HORIZONTAL)
- user_lbl = wx.StaticText(SELF, label="Username:")
- user_sizer.Add(user_lbl, 0, wx.ALL|wx.LEFT, 10)
- user_lbl.SetFont(prog_label)
- SELF.user = wx.TextCtrl(SELF)
- user_sizer.Add(SELF.user, 0, wx.ALL, 5)
- SELF.gb_sizer.Add(user_lbl,0,wx.ALL|wx.CENTER,5)
- # pass info
- p_sizer = wx.BoxSizer(wx.HORIZONTAL)
- p_lbl = wx.StaticText(SELF, label="Password:")
- p_sizer.Add(p_lbl, 0, wx.ALL|wx.LEFT, 10)
- p_lbl.SetFont(prog_label)
- SELF.password = wx.TextCtrl(SELF, style=wx.TE_PASSWORD|wx.TE_PROCESS_ENTER)
- p_sizer.Add(SELF.password, 0, wx.ALL, 5)
- SELF.gb_sizer.Add(p_lbl,0,wx.ALL|wx.CENTER,5)
- main_sizer = wx.BoxSizer(wx.VERTICAL)
- main_sizer.Add(user_sizer, 0, wx.TOP, 40)
- main_sizer.Add(p_sizer, 0, wx.TOP, 15)
- btn = wx.Button(SELF, label="Login", style=wx.BORDER_NONE)
- btn.Bind(wx.EVT_BUTTON, SELF.onLogin)
- btn.SetFont(prog_btn)
- btn.SetBackgroundColour('#5D4C46')
- btn.SetForegroundColour(wx.WHITE)
- main_sizer.Add(btn, 0, wx.ALL|wx.CENTER, 2)
- cancel = wx.Button(SELF, wx.ID_CANCEL, style=wx.BORDER_NONE)
- cancel.SetFont(prog_btn)
- cancel.SetBackgroundColour('#5D4C46')
- cancel.SetForegroundColour(wx.WHITE)
- main_sizer.Add(cancel, 0, wx.ALL|wx.CENTER, 5)
- SELF.SetSizer(main_sizer)
- SELF.Center()
- #----------------------------------------------------------------------
- def onLogin(SELF, event):
- """
- Check credentials and login
- """
- stupid_user = "admin"
- user_name = SELF.user.GetValue()
- stupid_password = "password"
- user_password = SELF.password.GetValue()
- if user_password == stupid_password and user_name == stupid_user:
- print "You are now Logged in!"
- pub.sendMessage("frameListener", message="show")
- SELF.Destroy()
- else:
- SELF.Close()
- print "Username or password is Incorrect!"
- ########################################################################
- ############################### // Main Frame // ######################################
- class MyFrame(wx.Frame):
- def __init__(SELF):
- wx.Frame.__init__(SELF, None,-1,"Welcome To Sqlite3 GUI",size=(970,770),style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX)
- SELF.SetBackgroundColour(wx.WHITE)
- pub.subscribe(SELF.myListener, "frameListener")
- SELF.initialize()
- dlg = LoginDialog()
- res = dlg.ShowModal()
- if res == wx.ID_CANCEL:
- dlg.Destroy()
- SELF.Close()
- def myListener(SELF, message, arg2=None):
- SELF.Show()
- SELF.Center()
- def initialize(SELF):
- face = "ProggySquareTT"
- prog_font = wx.TheFontList.FindOrCreateFont(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
- prog_font2 = wx.TheFontList.FindOrCreateFont(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
- prog_label = wx.TheFontList.FindOrCreateFont(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
- prog_btn = wx.TheFontList.FindOrCreateFont(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
- def_font = wx.Font(12, wx.MODERN, wx.NORMAL, wx.NORMAL)
- panelsarj = wx.Panel(SELF,-1,pos =(0,2),size=(1250,42))
- panelsarj.SetBackgroundColour('#5D4C46')
- font_lbl= wx.Font(10, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- sarjfont_lbl= wx.Font(15, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- sarj_sizer = wx.BoxSizer(wx.HORIZONTAL)
- sarj_lbl = wx.StaticText(panelsarj,label="Welcome To SQLITE3 GUI wxPython")
- sarj_lbl.SetForegroundColour(wx.WHITE)
- sarj_lbl.SetFont(prog_font)
- sarj_sizer.Add(sarj_lbl,0,wx.CENTER|wx.TOP,5)
- panel1 = wx.Panel(SELF,-1,pos =(8,60),size=(235,130))
- panel2 = wx.Panel(SELF,-1,pos =(8,205),size=(235,235))
- panel3 = wx.Panel(SELF,-1,pos =(8,480),size=(245,250))
- #panel4 = wx.Panel(SELF,-1,pos =(270,340),size=(245,95))
- panel5 = wx.Panel(SELF,-1,pos =(290,60),size=(230,125))
- panel6 = wx.Panel(SELF,-1,pos =(290,210),size=(230,230))
- mainPanel = wx.lib.scrolledpanel.ScrolledPanel(SELF,-1, style=wx.SIMPLE_BORDER, pos =(590,70),size=(360,360))
- mainPanel.SetupScrolling()
- panel1.SetBackgroundColour('#44B3C2')
- panel2.SetBackgroundColour('#44B3C2')
- panel3.SetBackgroundColour('#44B3C2')
- #panel4.SetBackgroundColour('#F2EDD8')
- panel5.SetBackgroundColour('#44B3C2')
- panel6.SetBackgroundColour('#44B3C2')
- mainPanel.SetBackgroundColour('#FFFFFF')
- SELF.dblbl = wx.StaticBox(SELF, -1, 'Create DataBase:' , pos =(5,50),size=(240,140))
- font_dblbl= wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.dblbl.SetForegroundColour(wx.BLACK)
- SELF.dblbl.SetFont(prog_font2)
- SELF.dblbl2 = wx.StaticBox(SELF, -1, 'Create Table:' , pos =(5,205),size=(240,240))
- font_dblbl2= wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.dblbl2.SetForegroundColour(wx.BLACK)
- SELF.dblbl2.SetFont(prog_font2)
- SELF.dblbl3 = wx.StaticBox(SELF, -1, 'INSERT Data:' , pos =(5,465),size=(252,270))
- font_dblbl3 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.dblbl3.SetForegroundColour(wx.BLACK)
- SELF.dblbl3.SetFont(prog_font2)
- #SELF.dblbl4 = wx.StaticBox(SELF, -1, 'Show Data:' , pos =(270,340),size=(252,100))
- #font_dblbl4= wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- #SELF.dblbl4.SetForegroundColour(wx.BLUE)
- #SELF.dblbl4.SetFont(prog_font2)
- SELF.dblbl5 = wx.StaticBox(SELF, -1, 'Delete Data:' , pos =(290,50),size=(240,140))
- font_dblbl5 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.dblbl5.SetForegroundColour(wx.BLACK)
- SELF.dblbl5.SetFont(prog_font2)
- SELF.dblbl6 = wx.StaticBox(SELF, -1, 'Update Data:' , pos =(290,205),size=(240,240))
- font_dblbl6 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.dblbl6.SetForegroundColour(wx.BLACK)
- SELF.dblbl6.SetFont(prog_font2)
- SELF.dblbl7 = wx.StaticBox(SELF, -1, 'Records:' , pos =(580,50),size=(380,390))
- font_dblbl7 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.dblbl7.SetForegroundColour(wx.BLACK)
- SELF.dblbl7.SetFont(prog_font2)
- SELF.dblbl_sizer = wx.StaticBoxSizer(SELF.dblbl, wx.VERTICAL)
- SELF.dblbl2_sizer = wx.StaticBoxSizer(SELF.dblbl2, wx.VERTICAL)
- SELF.dblbl3_sizer = wx.StaticBoxSizer(SELF.dblbl3, wx.VERTICAL)
- #SELF.dblbl4_sizer = wx.StaticBoxSizer(SELF.dblbl4, wx.VERTICAL)
- SELF.dblbl5_sizer = wx.StaticBoxSizer(SELF.dblbl5, wx.VERTICAL)
- SELF.dblbl6_sizer = wx.StaticBoxSizer(SELF.dblbl6, wx.VERTICAL)
- SELF.dblbl7_sizer = wx.StaticBoxSizer(SELF.dblbl7, wx.VERTICAL)
- db_sizer = wx.BoxSizer(wx.HORIZONTAL)
- db_lbl = wx.StaticText(panel1,label= "Database Name:")
- db_lbl.SetForegroundColour(wx.WHITE)
- db_lbl.SetFont(prog_label)
- db_sizer.Add(db_lbl,0,wx.LEFT|wx.TOP,5)
- SELF.dblbl_sizer.Add(db_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.db = wx.TextCtrl(panel1,style=wx.TE_CENTER)
- SELF.db.SetForegroundColour(wx.BLUE)
- db_sizer.Add(SELF.db,0,wx.ALL,5)
- SELF.dblbl_sizer.Add(SELF.db,0,wx.ALL|wx.CENTER,5)
- #font_1= wx.Font(11, wx.DECORATIVE, wx.NORMAL, wx.BOLD)
- #SELF.db.SetFont(font_1)
- button_sizer = wx.BoxSizer(wx.HORIZONTAL)
- SELF.button = wx.Button(panel1,-1,label="Create DB", style=wx.BORDER_NONE)
- SELF.Bind(wx.EVT_BUTTON,SELF.OnDbCreateButtonClick,SELF.button)
- font_button= wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.button.SetFont(prog_btn)
- SELF.button.SetBackgroundColour('#5D4C46')
- SELF.button.SetForegroundColour(wx.WHITE)
- button_sizer.Add(SELF.button,0,wx.LEFT,107)
- SELF.dblbl_sizer.Add(SELF.button,0,wx.ALL|wx.CENTER,5)
- tb_sizer = wx.BoxSizer(wx.HORIZONTAL)
- tb_lbl = wx.StaticText(panel2,label="Table Name:")
- tb_lbl.SetForegroundColour(wx.WHITE)
- tb_lbl.SetFont(prog_label)
- tb_sizer.Add(tb_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(tb_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.tb = wx.TextCtrl(panel2,style=wx.TE_CENTER)
- SELF.tb.SetForegroundColour(wx.BLUE)
- tb_sizer.Add(SELF.tb,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.tb,0,wx.ALL|wx.CENTER,5)
- #SELF.tb.SetFont(font_1)
- col1_sizer = wx.BoxSizer(wx.HORIZONTAL)
- col1_lbl = wx.StaticText(panel2,label="1st Column:")
- col1_lbl.SetForegroundColour(wx.WHITE)
- col1_lbl.SetFont(prog_label)
- col1_sizer.Add(col1_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(col1_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.col1 = wx.TextCtrl(panel2,style=wx.TE_CENTER)
- SELF.col1.SetForegroundColour(wx.BLUE)
- col1_sizer.Add(SELF.col1,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.col1,0,wx.ALL|wx.CENTER,5)
- #SELF.col1.SetFont(font_1)
- col2_sizer = wx.BoxSizer(wx.HORIZONTAL)
- col2_lbl = wx.StaticText(panel2,label="2nd Column:")
- col2_lbl.SetForegroundColour(wx.WHITE)
- col2_lbl.SetFont(prog_label)
- col2_sizer.Add(col2_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(col2_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.col2 = wx.TextCtrl(panel2,style=wx.TE_CENTER)
- SELF.col2.SetForegroundColour(wx.BLUE)
- col2_sizer.Add(SELF.col2,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.col2,0,wx.ALL|wx.CENTER,5)
- #SELF.col2.SetFont(font_1)
- col3_sizer = wx.BoxSizer(wx.HORIZONTAL)
- col3_lbl = wx.StaticText(panel2,label="3rd Column:")
- col3_lbl.SetForegroundColour(wx.WHITE)
- col3_lbl.SetFont(prog_label)
- col3_sizer.Add(col3_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(col3_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.col3 = wx.TextCtrl(panel2,style=wx.TE_CENTER)
- SELF.col3.SetForegroundColour(wx.BLUE)
- col3_sizer.Add(SELF.col3,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.col3,0,wx.ALL|wx.CENTER,5)
- #SELF.col3.SetFont(font_1)
- button2_sizer = wx.BoxSizer(wx.HORIZONTAL)
- SELF.button2 = wx.Button(panel2,-1,label="Create TB", style=wx.BORDER_NONE)
- SELF.Bind(wx.EVT_BUTTON,SELF.OnTableCreateButtonClick,SELF.button2)
- font_button2 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.button2.SetFont(prog_btn)
- SELF.button2.SetBackgroundColour('#5D4C46')
- SELF.button2.SetForegroundColour(wx.WHITE)
- button2_sizer.Add(SELF.button2,0,wx.LEFT,105)
- SELF.dblbl_sizer.Add(SELF.button2,0,wx.ALL|wx.CENTER,5)
- insert1_sizer = wx.BoxSizer(wx.HORIZONTAL)
- insert1_lbl = wx.StaticText(panel3,label="Insert Col. 1:")
- insert1_lbl.SetForegroundColour(wx.WHITE)
- insert1_lbl.SetFont(prog_label)
- insert1_sizer.Add(insert1_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl3_sizer.Add(insert1_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.insert1 = wx.TextCtrl(panel3,style=wx.TE_CENTER)
- SELF.insert1.SetForegroundColour(wx.BLUE)
- insert1_sizer.Add(SELF.insert1,0,wx.ALL,15)
- SELF.dblbl3_sizer.Add(SELF.insert1,0,wx.ALL|wx.CENTER,5)
- #SELF.insert1.SetFont(font_1)
- note1_sizer = wx.BoxSizer(wx.HORIZONTAL)
- note1_lbl = wx.StaticText(panel3, label= "[ Must be Text ]")
- note1_lbl.SetForegroundColour(wx.WHITE)
- note1_lbl.SetFont(prog_label)
- note1_sizer.Add(note1_lbl,0,wx.TOP|wx.RIGHT,-177)
- SELF.dblbl3_sizer.Add(note1_lbl,0,wx.ALL|wx.CENTER,5)
- insert2_sizer = wx.BoxSizer(wx.HORIZONTAL)
- insert2_lbl = wx.StaticText(panel3,label="Insert Col. 2:")
- insert2_lbl.SetForegroundColour(wx.WHITE)
- insert2_lbl.SetFont(prog_label)
- insert2_sizer.Add(insert2_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl3_sizer.Add(insert2_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.insert2 = wx.TextCtrl(panel3,style=wx.TE_CENTER)
- SELF.insert2.SetForegroundColour(wx.BLUE)
- insert2_sizer.Add(SELF.insert2,0,wx.ALL,15)
- SELF.dblbl3_sizer.Add(SELF.insert2,0,wx.ALL|wx.CENTER,5)
- #SELF.insert2.SetFont(font_1)
- note2_sizer = wx.BoxSizer(wx.HORIZONTAL)
- note2_lbl = wx.StaticText(panel3, label= "[ Must be Text ]")
- note2_lbl.SetForegroundColour(wx.WHITE)
- note2_lbl.SetFont(prog_label)
- note2_sizer.Add(note2_lbl,0,wx.TOP|wx.RIGHT,-128)
- SELF.dblbl3_sizer.Add(note2_lbl,0,wx.ALL|wx.CENTER,5)
- insert3_sizer = wx.BoxSizer(wx.HORIZONTAL)
- insert3_lbl = wx.StaticText(panel3,label="Insert Col. 3:")
- insert3_lbl.SetForegroundColour(wx.WHITE)
- insert3_lbl.SetFont(prog_label)
- insert3_sizer.Add(insert3_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl3_sizer.Add(insert3_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.insert3 = wx.TextCtrl(panel3,style=wx.TE_CENTER)
- SELF.insert3.SetForegroundColour(wx.BLUE)
- insert3_sizer.Add(SELF.insert3,0,wx.ALL,15)
- SELF.dblbl3_sizer.Add(SELF.insert3,0,wx.ALL|wx.CENTER,5)
- #SELF.insert3.SetFont(font_1)
- note3_sizer = wx.BoxSizer(wx.HORIZONTAL)
- note3_lbl = wx.StaticText(panel3, label= "[ Must be Text ]")
- note3_lbl.SetForegroundColour(wx.WHITE)
- note3_lbl.SetFont(prog_label)
- note3_sizer.Add(note3_lbl,0,wx.TOP|wx.RIGHT,-78)
- SELF.dblbl3_sizer.Add(note3_lbl,0,wx.ALL|wx.CENTER,5)
- button0_sizer = wx.BoxSizer(wx.HORIZONTAL)
- SELF.button0 = wx.Button(panel3,-1,label="INSERT Data", style=wx.BORDER_NONE)
- SELF.Bind(wx.EVT_BUTTON,SELF.OnInsertButtonClick,SELF.button0)
- font_button0 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.button0.SetFont(prog_btn)
- SELF.button0.SetBackgroundColour('#5D4C46')
- SELF.button0.SetForegroundColour(wx.WHITE)
- button0_sizer.Add(SELF.button0,0,wx.LEFT,112)
- SELF.dblbl3_sizer.Add(SELF.button0,0,wx.ALL|wx.CENTER,5)
- #button3_sizer = wx.BoxSizer(wx.HORIZONTAL)
- #SELF.button3 = wx.Button(panel4,-1,label="Show Table Data")
- #SELF.Bind(wx.EVT_BUTTON,SELF.OnShowButtonClick,SELF.button3)
- #font_button3 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- #SELF.button3.SetFont(font_button)
- #SELF.button3.SetForegroundColour(wx.RED)
- #button3_sizer.Add(SELF.button3,0,wx.LEFT,50)
- del_sizer = wx.BoxSizer(wx.HORIZONTAL)
- del_lbl = wx.StaticText(panel5,label= "Enter Column Id:")
- del_lbl.SetForegroundColour(wx.WHITE)
- del_lbl.SetFont(prog_label)
- del_sizer.Add(del_lbl,0,wx.LEFT|wx.TOP,5)
- SELF.dblbl_sizer.Add(del_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.delete = wx.TextCtrl(panel5,style=wx.TE_CENTER)
- SELF.delete.SetForegroundColour(wx.BLUE)
- del_sizer.Add(SELF.delete,0,wx.ALL,3)
- SELF.dblbl3_sizer.Add(SELF.delete,0,wx.ALL|wx.CENTER,5)
- SELF.delete.SetFont(prog_label)
- button4_sizer = wx.BoxSizer(wx.HORIZONTAL)
- SELF.button4 = wx.Button(panel5,-1,label="DELETE Data", style=wx.BORDER_NONE)
- SELF.Bind(wx.EVT_BUTTON,SELF.OnDeleteButtonClick,SELF.button4)
- font_button3 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
- SELF.button4.SetFont(prog_btn)
- SELF.button4.SetBackgroundColour('#5D4C46')
- SELF.button4.SetForegroundColour(wx.WHITE)
- button4_sizer.Add(SELF.button4,0,wx.LEFT,105)
- column_sizer = wx.BoxSizer(wx.HORIZONTAL)
- column_lbl = wx.StaticText(panel6,label="Column ID:")
- column_lbl.SetForegroundColour(wx.WHITE)
- column_lbl.SetFont(prog_label)
- column_sizer.Add(column_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(column_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.column = wx.TextCtrl(panel6,style=wx.TE_CENTER)
- SELF.column.SetForegroundColour(wx.BLUE)
- column_sizer.Add(SELF.column,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.column,0,wx.ALL|wx.CENTER,5)
- #SELF.column.SetFont(font_1)
- col11_sizer = wx.BoxSizer(wx.HORIZONTAL)
- col11_lbl = wx.StaticText(panel6,label="1st Column:")
- col11_lbl.SetForegroundColour(wx.WHITE)
- col11_lbl.SetFont(prog_label)
- col11_sizer.Add(col11_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(col11_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.col11 = wx.TextCtrl(panel6,style=wx.TE_CENTER)
- SELF.col11.SetForegroundColour(wx.BLUE)
- col11_sizer.Add(SELF.col11,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.col11,0,wx.ALL|wx.CENTER,5)
- #SELF.col11.SetFont(font_1)
- col22_sizer = wx.BoxSizer(wx.HORIZONTAL)
- col22_lbl = wx.StaticText(panel6,label="2nd Column:")
- col22_lbl.SetForegroundColour(wx.WHITE)
- col22_lbl.SetFont(prog_label)
- col22_sizer.Add(col22_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(col22_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.col22 = wx.TextCtrl(panel6,style=wx.TE_CENTER)
- SELF.col22.SetForegroundColour(wx.BLUE)
- col22_sizer.Add(SELF.col22,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.col22,0,wx.ALL|wx.CENTER,5)
- #SELF.col22.SetFont(font_1)
- col33_sizer = wx.BoxSizer(wx.HORIZONTAL)
- col33_lbl = wx.StaticText(panel6,label="3rd Column:")
- col33_lbl.SetForegroundColour(wx.WHITE)
- col33_lbl.SetFont(prog_label)
- col33_sizer.Add(col33_lbl,0,wx.LEFT|wx.TOP,20)
- SELF.dblbl2_sizer.Add(col33_lbl,0,wx.ALL|wx.CENTER,5)
- SELF.col33 = wx.TextCtrl(panel6,style=wx.TE_CENTER)
- SELF.col33.SetForegroundColour(wx.BLUE)
- col33_sizer.Add(SELF.col33,0,wx.ALL,15)
- SELF.dblbl2_sizer.Add(SELF.col33,0,wx.ALL|wx.CENTER,5)
- #SELF.col33.SetFont(font_1)
- button5_sizer = wx.BoxSizer(wx.HORIZONTAL)
- SELF.button5 = wx.Button(panel6,-1,label="UPDATE Data", style=wx.BORDER_NONE)
- SELF.Bind(wx.EVT_BUTTON,SELF.OnUpdateButtonClick,SELF.button5)
- font_button5 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD )
- SELF.button5.SetFont(prog_btn)
- SELF.button5.SetBackgroundColour('#5D4C46')
- SELF.button5.SetForegroundColour(wx.WHITE)
- button5_sizer.Add(SELF.button5,0,wx.LEFT,100)
- #SELF.btn_logout = wx.Button(SELF,-1,label="Logout", style=wx.BORDER_NONE)
- #SELF.Bind(wx.EVT_BUTTON,SELF.OnLogoutButtonClick,SELF.btn_logout)
- grid_sizer = wx.BoxSizer(wx.HORIZONTAL)
- SELF.grid = wx.grid.Grid(mainPanel,-1)
- SELF.grid.CreateGrid(50,3)
- grid_sizer.Add(SELF.grid,0,wx.ALL,5)
- SELF.dblbl7_sizer.Add(SELF.grid,0,wx.ALL|wx.CENTER,5)
- main_sizer= wx.BoxSizer(wx.VERTICAL)
- main_sizer.Add(sarj_sizer,0,wx.TOP|wx.CENTER,3)
- main_sizer.Add(db_sizer,0,wx.TOP,5)
- main_sizer.Add(button_sizer,0,wx.TOP,2)
- main_sizer.Add(tb_sizer,0,wx.TOP,-80)
- main_sizer.Add(col1_sizer,0,wx.TOP,-40)
- main_sizer.Add(col2_sizer,0,wx.TOP,-20)
- main_sizer.Add(col3_sizer,0,wx.TOP,-18)
- main_sizer.Add(button2_sizer,0,wx.TOP,2)
- main_sizer.Add(insert1_sizer,0,wx.TOP,-210)
- main_sizer.Add(note1_sizer,0,wx.LEFT|wx.TOP,10)
- main_sizer.Add(insert2_sizer,0,wx.TOP,-160)
- main_sizer.Add(note2_sizer,0,wx.LEFT|wx.TOP,10)
- main_sizer.Add(insert3_sizer,0,wx.TOP,-110)
- main_sizer.Add(note3_sizer,0,wx.LEFT|wx.TOP,10)
- main_sizer.Add(button0_sizer,0,wx.TOP,-40)
- #main_sizer.Add(button3_sizer,0,wx.TOP,-210)
- main_sizer.Add(del_sizer,0,wx.TOP,-205)
- main_sizer.Add(button4_sizer,0,wx.TOP,-165)
- main_sizer.Add(column_sizer,0,wx.TOP,-225)
- main_sizer.Add(col11_sizer,0,wx.TOP,-190)
- main_sizer.Add(col22_sizer,0,wx.TOP,-155)
- main_sizer.Add(col33_sizer,0,wx.TOP,-120)
- main_sizer.Add(button5_sizer,0,wx.TOP,-70)
- main_sizer.Add(grid_sizer,0,wx.TOP,-245)
- SELF.SetSizer(main_sizer)
- mainPanel.SetSizer(grid_sizer)
- #SELF.Show(True)
- SELF.Center()
- def OnDbCreateButtonClick(SELF,event):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue() + ".db"))
- print "\nDataBase Created!\n"
- def OnTableCreateButtonClick(SELF,event):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue()))
- with conn:
- cur = conn.cursor()
- cur.execute("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT, %s TEXT, %s TEXT, %s TEXT)"%(SELF.tb.GetValue(), SELF.col1.GetValue(), SELF.col2.GetValue(), SELF.col3.GetValue()))
- print "Table Created!\n"
- def OnShowButtonClick(SELF,event):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue()))
- with conn:
- cur = conn.cursor()
- # Fetch Columns Name From Table
- meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- columns = []
- for i in meta.description:
- columns.append(i[0])
- columns = columns[1:]
- for i in range(len(columns)):
- SELF.grid.SetColLabelValue(i, columns[i])
- # Populate Grid with The Values From Database
- all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- for row in all:
- row_num = row[0]
- cells = row[1:]
- for i in range(len(cells)):
- if cells[i] != None and cells[i] != "null":
- SELF.grid.SetCellValue(row_num, i, str(cells[i]))
- #rows = cur.fetchall()
- #for row in rows:
- #print row
- #print "\nId = ", row[0]
- #print "%s = "%(SELF.col1.GetValue()), row[1]
- #print "%s = "%(SELF.col2.GetValue()), row[2]
- #print "%s = "%(SELF.col3.GetValue()), row[3]
- def OnInsertButtonClick(SELF,event):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue()))
- with conn:
- cur = conn.cursor()
- cur.execute("INSERT INTO %s VALUES(NULL,'%s', '%s', '%s')" %(SELF.tb.GetValue(), SELF.insert1.GetValue(), SELF.insert2.GetValue(), SELF.insert3.GetValue()))
- print "Data Inserted!"
- # Fetch Columns Name From Table
- meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- columns = []
- for i in meta.description:
- columns.append(i[0])
- columns = columns[1:]
- for i in range(len(columns)):
- SELF.grid.SetColLabelValue(i, columns[i])
- # Populate Grid with The Values From Database
- all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- for row in all:
- row_num = row[0]
- cells = row[1:]
- for i in range(len(cells)):
- if cells[i] != None and cells[i] != "null":
- SELF.grid.SetCellValue(row_num, i, str(cells[i]))
- def OnDeleteButtonClick(SELF,event):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue()))
- with conn:
- cur = conn.cursor()
- cur.execute("DELETE FROM %s WHERE ID=%s" %(SELF.tb.GetValue(), SELF.delete.GetValue()))
- #user = cur.fetchone()[0]
- #SELF.refreshGrid()
- # Fetch Columns Name From Table
- SELF.grid.ClearGrid()
- SELF.grid.BeginBatch()
- delmsg = wx.grid.GRIDTABLE_NOTIFY_ROWS_DELETED
- msg = wx.grid.GridTableMessage(
- SELF.grid.GetTable(),
- delmsg,
- )
- SELF.grid.ProcessTableMessage(msg)
- #msg = wx.grid.GridTableMessage(SELF.grid.GetTable(), wxGRIDTABLE_REQUEST_VIEW_GET_VALUES)
- SELF.grid.ProcessTableMessage(msg)
- SELF.grid.EndBatch()
- # Fetch Columns Name From Table
- meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- columns = []
- for i in meta.description:
- columns.append(i[0])
- columns = columns[1:]
- for i in range(len(columns)):
- SELF.grid.SetColLabelValue(i, columns[i])
- # Populate Grid with The Values From Database
- all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- for row in all:
- row_num = row[0]
- cells = row[1:]
- for i in range(len(cells)):
- if cells[i] != None and cells[i] != "null":
- SELF.grid.SetCellValue(row_num, i, str(cells[i]))
- print "\nData Deleted!\n"
- def refreshGrid(SELF):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue()))
- with conn:
- cur = conn.cursor()
- all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- for row in all:
- row_num = row[0]
- cells = row[1:]
- #SELF.grid.ClearGrid()
- SELF.grid.BeginBatch()
- current, new, delmsg, addmsg = (len(cells), SELF.grid.GetNumberRows(), wxGRIDTABLE_NOTIFY_ROWS_DELETED, wxGRIDTABLE_NOTIFY_ROWS_APPENDED)
- if new < current:
- msg = wx.grid.GridTableMessage(
- SELF.grid.GetTable(),
- delmsg,
- new, # position
- current-new,
- )
- SELF.grid.ProcessTableMessage(msg)
- elif new > current:
- msg = wx.grid.GridTableMessage(
- SELF.grid.GetTable(),
- addmsg,
- new-current
- )
- SELF.grid.ProcessTableMessage(msg)
- msg = wx.grid.GridTableMessage(SELF.grid.GetTable(), wxGRIDTABLE_REQUEST_VIEW_GET_VALUES)
- SELF.grid.ProcessTableMessage(msg)
- SELF.grid.EndBatch()
- def OnUpdateButtonClick(SELF,event):
- import sqlite3 as lite
- import sys
- conn = lite.connect((SELF.db.GetValue()))
- with conn:
- cur = conn.cursor()
- cur.execute("SELECT * FROM %s where Id = %s" %(SELF.tb.GetValue(), SELF.column.GetValue()))
- user = cur.fetchone()[0]
- cur.execute("UPDATE %s SET %s = '%s' where Id = %s" %(SELF.tb.GetValue(), SELF.col1.GetValue(), SELF.col11.GetValue(), SELF.column.GetValue()))
- cur.execute("UPDATE %s SET %s = '%s' where Id = %s" %(SELF.tb.GetValue(), SELF.col2.GetValue(), SELF.col22.GetValue(), SELF.column.GetValue()))
- cur.execute("UPDATE %s SET %s = '%s' where Id = %s" %(SELF.tb.GetValue(), SELF.col3.GetValue(), SELF.col33.GetValue(), SELF.column.GetValue()))
- # Fetch Columns Name From Table
- meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- columns = []
- for i in meta.description:
- columns.append(i[0])
- columns = columns[1:]
- for i in range(len(columns)):
- SELF.grid.SetColLabelValue(i, columns[i])
- # Populate Grid with The Values From Database
- all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
- for row in all:
- row_num = row[0]
- cells = row[1:]
- for i in range(len(cells)):
- if cells[i] != None and cells[i] != "null":
- SELF.grid.SetCellValue(row_num, i, str(cells[i]))
- print "\nData Updated!\n"
- if __name__ == "__main__":
- app = wx.App(False)
- frame = MyFrame()
- frame.Show()
- app.MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement