Advertisement
Guest User

Untitled

a guest
Apr 17th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.46 KB | None | 0 0
  1. #---------------------------------------------------------------------
  2.  
  3. #!/usr/bin/env python
  4. # -*- coding: utf-8 -*-
  5. # -*- SQLITE3 GUI DEMO APP -*-
  6. # -*- Python (2.7.11) -*-
  7. # -*- wxPython (2.8) -*-
  8. # -*- Author : DB <dbh4ck@gmail.com> aka <db~@NC> -*-
  9. # -*- GUI wxPython -*-
  10. # -*- coded by db~@NC -*-
  11. # -*- Mar., 2016 -*-
  12.  
  13. #---------------------------------------------------------------------
  14.  
  15. import os
  16. import sys
  17. from wx.lib import sized_controls
  18.  
  19. import wx
  20. if "2.8" in wx.version():
  21. import wx.lib.pubsub.setupkwargs
  22. from wx.lib.pubsub import pub
  23. else:
  24. from wx.lib.pubsub import pub
  25.  
  26. import wx.lib.agw.hyperlink as hl
  27. import wx, wx.html
  28. import wx.lib.scrolledpanel
  29. import wx.grid as grid
  30. from ctypes import *
  31.  
  32.  
  33. gdi32= WinDLL("gdi32.dll")
  34. font_path = os.path.abspath("Lato-Medium.ttf")
  35. print font_path
  36. print gdi32.AddFontResourceA(font_path)
  37.  
  38.  
  39. class LoginDialog(wx.Dialog):
  40.  
  41. def __init__(SELF):
  42. face = "ProggySquareTT"
  43.  
  44. prog_font = wx.TheFontList.FindOrCreateFont(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
  45. prog_font2 = wx.TheFontList.FindOrCreateFont(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
  46. prog_label = wx.TheFontList.FindOrCreateFont(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
  47. prog_btn = wx.TheFontList.FindOrCreateFont(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
  48.  
  49. """Constructor"""
  50. wx.Dialog.__init__(SELF, None, title="Admin Panel",size=(320,250))
  51. SELF.SetBackgroundColour('#F2EDD8')
  52.  
  53. SELF.gb = wx.StaticBox(SELF, -1, 'Admin Panel:' , pos =(5,3),size=(300,200))
  54. SELF.gb.SetForegroundColour(wx.BLACK)
  55. SELF.gb.SetFont(prog_font2)
  56.  
  57. SELF.gb_sizer = wx.StaticBoxSizer(SELF.gb, wx.VERTICAL)
  58.  
  59. # user info
  60. user_sizer = wx.BoxSizer(wx.HORIZONTAL)
  61.  
  62. user_lbl = wx.StaticText(SELF, label="Username:")
  63. user_sizer.Add(user_lbl, 0, wx.ALL|wx.LEFT, 10)
  64. user_lbl.SetFont(prog_label)
  65. SELF.user = wx.TextCtrl(SELF)
  66. user_sizer.Add(SELF.user, 0, wx.ALL, 5)
  67. SELF.gb_sizer.Add(user_lbl,0,wx.ALL|wx.CENTER,5)
  68.  
  69. # pass info
  70. p_sizer = wx.BoxSizer(wx.HORIZONTAL)
  71.  
  72. p_lbl = wx.StaticText(SELF, label="Password:")
  73. p_sizer.Add(p_lbl, 0, wx.ALL|wx.LEFT, 10)
  74. p_lbl.SetFont(prog_label)
  75. SELF.password = wx.TextCtrl(SELF, style=wx.TE_PASSWORD|wx.TE_PROCESS_ENTER)
  76. p_sizer.Add(SELF.password, 0, wx.ALL, 5)
  77. SELF.gb_sizer.Add(p_lbl,0,wx.ALL|wx.CENTER,5)
  78.  
  79. main_sizer = wx.BoxSizer(wx.VERTICAL)
  80. main_sizer.Add(user_sizer, 0, wx.TOP, 40)
  81. main_sizer.Add(p_sizer, 0, wx.TOP, 15)
  82.  
  83. btn = wx.Button(SELF, label="Login", style=wx.BORDER_NONE)
  84. btn.Bind(wx.EVT_BUTTON, SELF.onLogin)
  85. btn.SetFont(prog_btn)
  86. btn.SetBackgroundColour('#5D4C46')
  87. btn.SetForegroundColour(wx.WHITE)
  88. main_sizer.Add(btn, 0, wx.ALL|wx.CENTER, 2)
  89.  
  90. cancel = wx.Button(SELF, wx.ID_CANCEL, style=wx.BORDER_NONE)
  91. cancel.SetFont(prog_btn)
  92. cancel.SetBackgroundColour('#5D4C46')
  93. cancel.SetForegroundColour(wx.WHITE)
  94. main_sizer.Add(cancel, 0, wx.ALL|wx.CENTER, 5)
  95.  
  96.  
  97. SELF.SetSizer(main_sizer)
  98. SELF.Center()
  99.  
  100.  
  101. #----------------------------------------------------------------------
  102. def onLogin(SELF, event):
  103. """
  104. Check credentials and login
  105. """
  106. stupid_user = "admin"
  107. user_name = SELF.user.GetValue()
  108. stupid_password = "password"
  109. user_password = SELF.password.GetValue()
  110. if user_password == stupid_password and user_name == stupid_user:
  111. print "You are now Logged in!"
  112. pub.sendMessage("frameListener", message="show")
  113. SELF.Destroy()
  114.  
  115. else:
  116. SELF.Close()
  117. print "Username or password is Incorrect!"
  118.  
  119. ########################################################################
  120.  
  121.  
  122. ############################### // Main Frame // ######################################
  123.  
  124.  
  125. class MyFrame(wx.Frame):
  126. def __init__(SELF):
  127. wx.Frame.__init__(SELF, None,-1,"Welcome To Sqlite3 GUI",size=(970,770),style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX)
  128. SELF.SetBackgroundColour(wx.WHITE)
  129. pub.subscribe(SELF.myListener, "frameListener")
  130. SELF.initialize()
  131. dlg = LoginDialog()
  132. res = dlg.ShowModal()
  133. if res == wx.ID_CANCEL:
  134. dlg.Destroy()
  135. SELF.Close()
  136.  
  137.  
  138. def myListener(SELF, message, arg2=None):
  139. SELF.Show()
  140. SELF.Center()
  141.  
  142. def initialize(SELF):
  143. face = "ProggySquareTT"
  144.  
  145. prog_font = wx.TheFontList.FindOrCreateFont(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
  146. prog_font2 = wx.TheFontList.FindOrCreateFont(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
  147. prog_label = wx.TheFontList.FindOrCreateFont(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)
  148. prog_btn = wx.TheFontList.FindOrCreateFont(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, face)
  149. def_font = wx.Font(12, wx.MODERN, wx.NORMAL, wx.NORMAL)
  150.  
  151. panelsarj = wx.Panel(SELF,-1,pos =(0,2),size=(1250,42))
  152. panelsarj.SetBackgroundColour('#5D4C46')
  153.  
  154. font_lbl= wx.Font(10, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  155. sarjfont_lbl= wx.Font(15, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  156.  
  157.  
  158. sarj_sizer = wx.BoxSizer(wx.HORIZONTAL)
  159.  
  160. sarj_lbl = wx.StaticText(panelsarj,label="Welcome To SQLITE3 GUI wxPython")
  161. sarj_lbl.SetForegroundColour(wx.WHITE)
  162. sarj_lbl.SetFont(prog_font)
  163. sarj_sizer.Add(sarj_lbl,0,wx.CENTER|wx.TOP,5)
  164.  
  165.  
  166. panel1 = wx.Panel(SELF,-1,pos =(8,60),size=(235,130))
  167. panel2 = wx.Panel(SELF,-1,pos =(8,205),size=(235,235))
  168. panel3 = wx.Panel(SELF,-1,pos =(8,480),size=(245,250))
  169. #panel4 = wx.Panel(SELF,-1,pos =(270,340),size=(245,95))
  170. panel5 = wx.Panel(SELF,-1,pos =(290,60),size=(230,125))
  171. panel6 = wx.Panel(SELF,-1,pos =(290,210),size=(230,230))
  172.  
  173. mainPanel = wx.lib.scrolledpanel.ScrolledPanel(SELF,-1, style=wx.SIMPLE_BORDER, pos =(590,70),size=(360,360))
  174. mainPanel.SetupScrolling()
  175.  
  176.  
  177. panel1.SetBackgroundColour('#44B3C2')
  178. panel2.SetBackgroundColour('#44B3C2')
  179. panel3.SetBackgroundColour('#44B3C2')
  180. #panel4.SetBackgroundColour('#F2EDD8')
  181. panel5.SetBackgroundColour('#44B3C2')
  182. panel6.SetBackgroundColour('#44B3C2')
  183. mainPanel.SetBackgroundColour('#FFFFFF')
  184.  
  185.  
  186. SELF.dblbl = wx.StaticBox(SELF, -1, 'Create DataBase:' , pos =(5,50),size=(240,140))
  187. font_dblbl= wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  188. SELF.dblbl.SetForegroundColour(wx.BLACK)
  189. SELF.dblbl.SetFont(prog_font2)
  190.  
  191. SELF.dblbl2 = wx.StaticBox(SELF, -1, 'Create Table:' , pos =(5,205),size=(240,240))
  192. font_dblbl2= wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  193. SELF.dblbl2.SetForegroundColour(wx.BLACK)
  194. SELF.dblbl2.SetFont(prog_font2)
  195.  
  196. SELF.dblbl3 = wx.StaticBox(SELF, -1, 'INSERT Data:' , pos =(5,465),size=(252,270))
  197. font_dblbl3 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  198. SELF.dblbl3.SetForegroundColour(wx.BLACK)
  199. SELF.dblbl3.SetFont(prog_font2)
  200.  
  201. #SELF.dblbl4 = wx.StaticBox(SELF, -1, 'Show Data:' , pos =(270,340),size=(252,100))
  202. #font_dblbl4= wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  203. #SELF.dblbl4.SetForegroundColour(wx.BLUE)
  204. #SELF.dblbl4.SetFont(prog_font2)
  205.  
  206. SELF.dblbl5 = wx.StaticBox(SELF, -1, 'Delete Data:' , pos =(290,50),size=(240,140))
  207. font_dblbl5 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  208. SELF.dblbl5.SetForegroundColour(wx.BLACK)
  209. SELF.dblbl5.SetFont(prog_font2)
  210.  
  211. SELF.dblbl6 = wx.StaticBox(SELF, -1, 'Update Data:' , pos =(290,205),size=(240,240))
  212. font_dblbl6 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  213. SELF.dblbl6.SetForegroundColour(wx.BLACK)
  214. SELF.dblbl6.SetFont(prog_font2)
  215.  
  216. SELF.dblbl7 = wx.StaticBox(SELF, -1, 'Records:' , pos =(580,50),size=(380,390))
  217. font_dblbl7 = wx.Font(11, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  218. SELF.dblbl7.SetForegroundColour(wx.BLACK)
  219. SELF.dblbl7.SetFont(prog_font2)
  220.  
  221. SELF.dblbl_sizer = wx.StaticBoxSizer(SELF.dblbl, wx.VERTICAL)
  222. SELF.dblbl2_sizer = wx.StaticBoxSizer(SELF.dblbl2, wx.VERTICAL)
  223. SELF.dblbl3_sizer = wx.StaticBoxSizer(SELF.dblbl3, wx.VERTICAL)
  224. #SELF.dblbl4_sizer = wx.StaticBoxSizer(SELF.dblbl4, wx.VERTICAL)
  225. SELF.dblbl5_sizer = wx.StaticBoxSizer(SELF.dblbl5, wx.VERTICAL)
  226. SELF.dblbl6_sizer = wx.StaticBoxSizer(SELF.dblbl6, wx.VERTICAL)
  227. SELF.dblbl7_sizer = wx.StaticBoxSizer(SELF.dblbl7, wx.VERTICAL)
  228.  
  229.  
  230.  
  231. db_sizer = wx.BoxSizer(wx.HORIZONTAL)
  232.  
  233. db_lbl = wx.StaticText(panel1,label= "Database Name:")
  234. db_lbl.SetForegroundColour(wx.WHITE)
  235. db_lbl.SetFont(prog_label)
  236. db_sizer.Add(db_lbl,0,wx.LEFT|wx.TOP,5)
  237. SELF.dblbl_sizer.Add(db_lbl,0,wx.ALL|wx.CENTER,5)
  238.  
  239.  
  240. SELF.db = wx.TextCtrl(panel1,style=wx.TE_CENTER)
  241. SELF.db.SetForegroundColour(wx.BLUE)
  242. db_sizer.Add(SELF.db,0,wx.ALL,5)
  243. SELF.dblbl_sizer.Add(SELF.db,0,wx.ALL|wx.CENTER,5)
  244.  
  245. #font_1= wx.Font(11, wx.DECORATIVE, wx.NORMAL, wx.BOLD)
  246. #SELF.db.SetFont(font_1)
  247.  
  248.  
  249.  
  250. button_sizer = wx.BoxSizer(wx.HORIZONTAL)
  251.  
  252. SELF.button = wx.Button(panel1,-1,label="Create DB", style=wx.BORDER_NONE)
  253. SELF.Bind(wx.EVT_BUTTON,SELF.OnDbCreateButtonClick,SELF.button)
  254. font_button= wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  255. SELF.button.SetFont(prog_btn)
  256. SELF.button.SetBackgroundColour('#5D4C46')
  257. SELF.button.SetForegroundColour(wx.WHITE)
  258. button_sizer.Add(SELF.button,0,wx.LEFT,107)
  259. SELF.dblbl_sizer.Add(SELF.button,0,wx.ALL|wx.CENTER,5)
  260.  
  261.  
  262. tb_sizer = wx.BoxSizer(wx.HORIZONTAL)
  263.  
  264. tb_lbl = wx.StaticText(panel2,label="Table Name:")
  265. tb_lbl.SetForegroundColour(wx.WHITE)
  266. tb_lbl.SetFont(prog_label)
  267. tb_sizer.Add(tb_lbl,0,wx.LEFT|wx.TOP,20)
  268. SELF.dblbl2_sizer.Add(tb_lbl,0,wx.ALL|wx.CENTER,5)
  269.  
  270. SELF.tb = wx.TextCtrl(panel2,style=wx.TE_CENTER)
  271. SELF.tb.SetForegroundColour(wx.BLUE)
  272. tb_sizer.Add(SELF.tb,0,wx.ALL,15)
  273. SELF.dblbl2_sizer.Add(SELF.tb,0,wx.ALL|wx.CENTER,5)
  274. #SELF.tb.SetFont(font_1)
  275.  
  276.  
  277. col1_sizer = wx.BoxSizer(wx.HORIZONTAL)
  278.  
  279. col1_lbl = wx.StaticText(panel2,label="1st Column:")
  280. col1_lbl.SetForegroundColour(wx.WHITE)
  281. col1_lbl.SetFont(prog_label)
  282. col1_sizer.Add(col1_lbl,0,wx.LEFT|wx.TOP,20)
  283. SELF.dblbl2_sizer.Add(col1_lbl,0,wx.ALL|wx.CENTER,5)
  284.  
  285. SELF.col1 = wx.TextCtrl(panel2,style=wx.TE_CENTER)
  286. SELF.col1.SetForegroundColour(wx.BLUE)
  287. col1_sizer.Add(SELF.col1,0,wx.ALL,15)
  288. SELF.dblbl2_sizer.Add(SELF.col1,0,wx.ALL|wx.CENTER,5)
  289.  
  290. #SELF.col1.SetFont(font_1)
  291.  
  292. col2_sizer = wx.BoxSizer(wx.HORIZONTAL)
  293.  
  294. col2_lbl = wx.StaticText(panel2,label="2nd Column:")
  295. col2_lbl.SetForegroundColour(wx.WHITE)
  296. col2_lbl.SetFont(prog_label)
  297. col2_sizer.Add(col2_lbl,0,wx.LEFT|wx.TOP,20)
  298. SELF.dblbl2_sizer.Add(col2_lbl,0,wx.ALL|wx.CENTER,5)
  299.  
  300. SELF.col2 = wx.TextCtrl(panel2,style=wx.TE_CENTER)
  301. SELF.col2.SetForegroundColour(wx.BLUE)
  302. col2_sizer.Add(SELF.col2,0,wx.ALL,15)
  303. SELF.dblbl2_sizer.Add(SELF.col2,0,wx.ALL|wx.CENTER,5)
  304. #SELF.col2.SetFont(font_1)
  305.  
  306.  
  307. col3_sizer = wx.BoxSizer(wx.HORIZONTAL)
  308.  
  309. col3_lbl = wx.StaticText(panel2,label="3rd Column:")
  310. col3_lbl.SetForegroundColour(wx.WHITE)
  311. col3_lbl.SetFont(prog_label)
  312. col3_sizer.Add(col3_lbl,0,wx.LEFT|wx.TOP,20)
  313. SELF.dblbl2_sizer.Add(col3_lbl,0,wx.ALL|wx.CENTER,5)
  314.  
  315. SELF.col3 = wx.TextCtrl(panel2,style=wx.TE_CENTER)
  316. SELF.col3.SetForegroundColour(wx.BLUE)
  317. col3_sizer.Add(SELF.col3,0,wx.ALL,15)
  318. SELF.dblbl2_sizer.Add(SELF.col3,0,wx.ALL|wx.CENTER,5)
  319. #SELF.col3.SetFont(font_1)
  320.  
  321.  
  322. button2_sizer = wx.BoxSizer(wx.HORIZONTAL)
  323.  
  324. SELF.button2 = wx.Button(panel2,-1,label="Create TB", style=wx.BORDER_NONE)
  325. SELF.Bind(wx.EVT_BUTTON,SELF.OnTableCreateButtonClick,SELF.button2)
  326. font_button2 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  327. SELF.button2.SetFont(prog_btn)
  328. SELF.button2.SetBackgroundColour('#5D4C46')
  329. SELF.button2.SetForegroundColour(wx.WHITE)
  330. button2_sizer.Add(SELF.button2,0,wx.LEFT,105)
  331. SELF.dblbl_sizer.Add(SELF.button2,0,wx.ALL|wx.CENTER,5)
  332.  
  333.  
  334. insert1_sizer = wx.BoxSizer(wx.HORIZONTAL)
  335.  
  336. insert1_lbl = wx.StaticText(panel3,label="Insert Col. 1:")
  337. insert1_lbl.SetForegroundColour(wx.WHITE)
  338. insert1_lbl.SetFont(prog_label)
  339. insert1_sizer.Add(insert1_lbl,0,wx.LEFT|wx.TOP,20)
  340. SELF.dblbl3_sizer.Add(insert1_lbl,0,wx.ALL|wx.CENTER,5)
  341.  
  342.  
  343. SELF.insert1 = wx.TextCtrl(panel3,style=wx.TE_CENTER)
  344. SELF.insert1.SetForegroundColour(wx.BLUE)
  345. insert1_sizer.Add(SELF.insert1,0,wx.ALL,15)
  346. SELF.dblbl3_sizer.Add(SELF.insert1,0,wx.ALL|wx.CENTER,5)
  347. #SELF.insert1.SetFont(font_1)
  348.  
  349.  
  350. note1_sizer = wx.BoxSizer(wx.HORIZONTAL)
  351. note1_lbl = wx.StaticText(panel3, label= "[ Must be Text ]")
  352. note1_lbl.SetForegroundColour(wx.WHITE)
  353. note1_lbl.SetFont(prog_label)
  354. note1_sizer.Add(note1_lbl,0,wx.TOP|wx.RIGHT,-177)
  355. SELF.dblbl3_sizer.Add(note1_lbl,0,wx.ALL|wx.CENTER,5)
  356.  
  357.  
  358. insert2_sizer = wx.BoxSizer(wx.HORIZONTAL)
  359.  
  360. insert2_lbl = wx.StaticText(panel3,label="Insert Col. 2:")
  361. insert2_lbl.SetForegroundColour(wx.WHITE)
  362. insert2_lbl.SetFont(prog_label)
  363. insert2_sizer.Add(insert2_lbl,0,wx.LEFT|wx.TOP,20)
  364. SELF.dblbl3_sizer.Add(insert2_lbl,0,wx.ALL|wx.CENTER,5)
  365.  
  366. SELF.insert2 = wx.TextCtrl(panel3,style=wx.TE_CENTER)
  367. SELF.insert2.SetForegroundColour(wx.BLUE)
  368. insert2_sizer.Add(SELF.insert2,0,wx.ALL,15)
  369. SELF.dblbl3_sizer.Add(SELF.insert2,0,wx.ALL|wx.CENTER,5)
  370. #SELF.insert2.SetFont(font_1)
  371.  
  372. note2_sizer = wx.BoxSizer(wx.HORIZONTAL)
  373. note2_lbl = wx.StaticText(panel3, label= "[ Must be Text ]")
  374. note2_lbl.SetForegroundColour(wx.WHITE)
  375. note2_lbl.SetFont(prog_label)
  376. note2_sizer.Add(note2_lbl,0,wx.TOP|wx.RIGHT,-128)
  377. SELF.dblbl3_sizer.Add(note2_lbl,0,wx.ALL|wx.CENTER,5)
  378.  
  379. insert3_sizer = wx.BoxSizer(wx.HORIZONTAL)
  380.  
  381. insert3_lbl = wx.StaticText(panel3,label="Insert Col. 3:")
  382. insert3_lbl.SetForegroundColour(wx.WHITE)
  383. insert3_lbl.SetFont(prog_label)
  384. insert3_sizer.Add(insert3_lbl,0,wx.LEFT|wx.TOP,20)
  385. SELF.dblbl3_sizer.Add(insert3_lbl,0,wx.ALL|wx.CENTER,5)
  386.  
  387.  
  388. SELF.insert3 = wx.TextCtrl(panel3,style=wx.TE_CENTER)
  389. SELF.insert3.SetForegroundColour(wx.BLUE)
  390. insert3_sizer.Add(SELF.insert3,0,wx.ALL,15)
  391. SELF.dblbl3_sizer.Add(SELF.insert3,0,wx.ALL|wx.CENTER,5)
  392. #SELF.insert3.SetFont(font_1)
  393.  
  394. note3_sizer = wx.BoxSizer(wx.HORIZONTAL)
  395. note3_lbl = wx.StaticText(panel3, label= "[ Must be Text ]")
  396. note3_lbl.SetForegroundColour(wx.WHITE)
  397. note3_lbl.SetFont(prog_label)
  398. note3_sizer.Add(note3_lbl,0,wx.TOP|wx.RIGHT,-78)
  399. SELF.dblbl3_sizer.Add(note3_lbl,0,wx.ALL|wx.CENTER,5)
  400.  
  401.  
  402. button0_sizer = wx.BoxSizer(wx.HORIZONTAL)
  403.  
  404. SELF.button0 = wx.Button(panel3,-1,label="INSERT Data", style=wx.BORDER_NONE)
  405. SELF.Bind(wx.EVT_BUTTON,SELF.OnInsertButtonClick,SELF.button0)
  406. font_button0 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  407. SELF.button0.SetFont(prog_btn)
  408. SELF.button0.SetBackgroundColour('#5D4C46')
  409. SELF.button0.SetForegroundColour(wx.WHITE)
  410. button0_sizer.Add(SELF.button0,0,wx.LEFT,112)
  411. SELF.dblbl3_sizer.Add(SELF.button0,0,wx.ALL|wx.CENTER,5)
  412.  
  413. #button3_sizer = wx.BoxSizer(wx.HORIZONTAL)
  414.  
  415. #SELF.button3 = wx.Button(panel4,-1,label="Show Table Data")
  416. #SELF.Bind(wx.EVT_BUTTON,SELF.OnShowButtonClick,SELF.button3)
  417. #font_button3 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  418. #SELF.button3.SetFont(font_button)
  419. #SELF.button3.SetForegroundColour(wx.RED)
  420. #button3_sizer.Add(SELF.button3,0,wx.LEFT,50)
  421.  
  422.  
  423.  
  424.  
  425. del_sizer = wx.BoxSizer(wx.HORIZONTAL)
  426.  
  427. del_lbl = wx.StaticText(panel5,label= "Enter Column Id:")
  428. del_lbl.SetForegroundColour(wx.WHITE)
  429. del_lbl.SetFont(prog_label)
  430. del_sizer.Add(del_lbl,0,wx.LEFT|wx.TOP,5)
  431. SELF.dblbl_sizer.Add(del_lbl,0,wx.ALL|wx.CENTER,5)
  432.  
  433. SELF.delete = wx.TextCtrl(panel5,style=wx.TE_CENTER)
  434. SELF.delete.SetForegroundColour(wx.BLUE)
  435. del_sizer.Add(SELF.delete,0,wx.ALL,3)
  436. SELF.dblbl3_sizer.Add(SELF.delete,0,wx.ALL|wx.CENTER,5)
  437. SELF.delete.SetFont(prog_label)
  438.  
  439. button4_sizer = wx.BoxSizer(wx.HORIZONTAL)
  440.  
  441. SELF.button4 = wx.Button(panel5,-1,label="DELETE Data", style=wx.BORDER_NONE)
  442. SELF.Bind(wx.EVT_BUTTON,SELF.OnDeleteButtonClick,SELF.button4)
  443. font_button3 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD)
  444. SELF.button4.SetFont(prog_btn)
  445. SELF.button4.SetBackgroundColour('#5D4C46')
  446. SELF.button4.SetForegroundColour(wx.WHITE)
  447. button4_sizer.Add(SELF.button4,0,wx.LEFT,105)
  448.  
  449. column_sizer = wx.BoxSizer(wx.HORIZONTAL)
  450.  
  451. column_lbl = wx.StaticText(panel6,label="Column ID:")
  452. column_lbl.SetForegroundColour(wx.WHITE)
  453. column_lbl.SetFont(prog_label)
  454. column_sizer.Add(column_lbl,0,wx.LEFT|wx.TOP,20)
  455. SELF.dblbl2_sizer.Add(column_lbl,0,wx.ALL|wx.CENTER,5)
  456.  
  457. SELF.column = wx.TextCtrl(panel6,style=wx.TE_CENTER)
  458. SELF.column.SetForegroundColour(wx.BLUE)
  459. column_sizer.Add(SELF.column,0,wx.ALL,15)
  460. SELF.dblbl2_sizer.Add(SELF.column,0,wx.ALL|wx.CENTER,5)
  461. #SELF.column.SetFont(font_1)
  462.  
  463.  
  464. col11_sizer = wx.BoxSizer(wx.HORIZONTAL)
  465.  
  466. col11_lbl = wx.StaticText(panel6,label="1st Column:")
  467. col11_lbl.SetForegroundColour(wx.WHITE)
  468. col11_lbl.SetFont(prog_label)
  469. col11_sizer.Add(col11_lbl,0,wx.LEFT|wx.TOP,20)
  470. SELF.dblbl2_sizer.Add(col11_lbl,0,wx.ALL|wx.CENTER,5)
  471.  
  472. SELF.col11 = wx.TextCtrl(panel6,style=wx.TE_CENTER)
  473. SELF.col11.SetForegroundColour(wx.BLUE)
  474. col11_sizer.Add(SELF.col11,0,wx.ALL,15)
  475. SELF.dblbl2_sizer.Add(SELF.col11,0,wx.ALL|wx.CENTER,5)
  476.  
  477. #SELF.col11.SetFont(font_1)
  478.  
  479. col22_sizer = wx.BoxSizer(wx.HORIZONTAL)
  480.  
  481. col22_lbl = wx.StaticText(panel6,label="2nd Column:")
  482. col22_lbl.SetForegroundColour(wx.WHITE)
  483. col22_lbl.SetFont(prog_label)
  484. col22_sizer.Add(col22_lbl,0,wx.LEFT|wx.TOP,20)
  485. SELF.dblbl2_sizer.Add(col22_lbl,0,wx.ALL|wx.CENTER,5)
  486.  
  487. SELF.col22 = wx.TextCtrl(panel6,style=wx.TE_CENTER)
  488. SELF.col22.SetForegroundColour(wx.BLUE)
  489. col22_sizer.Add(SELF.col22,0,wx.ALL,15)
  490. SELF.dblbl2_sizer.Add(SELF.col22,0,wx.ALL|wx.CENTER,5)
  491. #SELF.col22.SetFont(font_1)
  492.  
  493.  
  494. col33_sizer = wx.BoxSizer(wx.HORIZONTAL)
  495.  
  496. col33_lbl = wx.StaticText(panel6,label="3rd Column:")
  497. col33_lbl.SetForegroundColour(wx.WHITE)
  498. col33_lbl.SetFont(prog_label)
  499. col33_sizer.Add(col33_lbl,0,wx.LEFT|wx.TOP,20)
  500. SELF.dblbl2_sizer.Add(col33_lbl,0,wx.ALL|wx.CENTER,5)
  501.  
  502. SELF.col33 = wx.TextCtrl(panel6,style=wx.TE_CENTER)
  503. SELF.col33.SetForegroundColour(wx.BLUE)
  504. col33_sizer.Add(SELF.col33,0,wx.ALL,15)
  505. SELF.dblbl2_sizer.Add(SELF.col33,0,wx.ALL|wx.CENTER,5)
  506. #SELF.col33.SetFont(font_1)
  507.  
  508. button5_sizer = wx.BoxSizer(wx.HORIZONTAL)
  509.  
  510. SELF.button5 = wx.Button(panel6,-1,label="UPDATE Data", style=wx.BORDER_NONE)
  511. SELF.Bind(wx.EVT_BUTTON,SELF.OnUpdateButtonClick,SELF.button5)
  512. font_button5 = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.BOLD )
  513. SELF.button5.SetFont(prog_btn)
  514. SELF.button5.SetBackgroundColour('#5D4C46')
  515. SELF.button5.SetForegroundColour(wx.WHITE)
  516. button5_sizer.Add(SELF.button5,0,wx.LEFT,100)
  517.  
  518. #SELF.btn_logout = wx.Button(SELF,-1,label="Logout", style=wx.BORDER_NONE)
  519. #SELF.Bind(wx.EVT_BUTTON,SELF.OnLogoutButtonClick,SELF.btn_logout)
  520.  
  521. grid_sizer = wx.BoxSizer(wx.HORIZONTAL)
  522. SELF.grid = wx.grid.Grid(mainPanel,-1)
  523. SELF.grid.CreateGrid(50,3)
  524. grid_sizer.Add(SELF.grid,0,wx.ALL,5)
  525. SELF.dblbl7_sizer.Add(SELF.grid,0,wx.ALL|wx.CENTER,5)
  526.  
  527. main_sizer= wx.BoxSizer(wx.VERTICAL)
  528.  
  529.  
  530. main_sizer.Add(sarj_sizer,0,wx.TOP|wx.CENTER,3)
  531. main_sizer.Add(db_sizer,0,wx.TOP,5)
  532.  
  533.  
  534. main_sizer.Add(button_sizer,0,wx.TOP,2)
  535.  
  536. main_sizer.Add(tb_sizer,0,wx.TOP,-80)
  537.  
  538. main_sizer.Add(col1_sizer,0,wx.TOP,-40)
  539.  
  540. main_sizer.Add(col2_sizer,0,wx.TOP,-20)
  541.  
  542. main_sizer.Add(col3_sizer,0,wx.TOP,-18)
  543.  
  544. main_sizer.Add(button2_sizer,0,wx.TOP,2)
  545.  
  546. main_sizer.Add(insert1_sizer,0,wx.TOP,-210)
  547. main_sizer.Add(note1_sizer,0,wx.LEFT|wx.TOP,10)
  548. main_sizer.Add(insert2_sizer,0,wx.TOP,-160)
  549. main_sizer.Add(note2_sizer,0,wx.LEFT|wx.TOP,10)
  550. main_sizer.Add(insert3_sizer,0,wx.TOP,-110)
  551. main_sizer.Add(note3_sizer,0,wx.LEFT|wx.TOP,10)
  552. main_sizer.Add(button0_sizer,0,wx.TOP,-40)
  553. #main_sizer.Add(button3_sizer,0,wx.TOP,-210)
  554. main_sizer.Add(del_sizer,0,wx.TOP,-205)
  555. main_sizer.Add(button4_sizer,0,wx.TOP,-165)
  556. main_sizer.Add(column_sizer,0,wx.TOP,-225)
  557. main_sizer.Add(col11_sizer,0,wx.TOP,-190)
  558.  
  559. main_sizer.Add(col22_sizer,0,wx.TOP,-155)
  560.  
  561. main_sizer.Add(col33_sizer,0,wx.TOP,-120)
  562. main_sizer.Add(button5_sizer,0,wx.TOP,-70)
  563. main_sizer.Add(grid_sizer,0,wx.TOP,-245)
  564.  
  565. SELF.SetSizer(main_sizer)
  566. mainPanel.SetSizer(grid_sizer)
  567.  
  568. #SELF.Show(True)
  569. SELF.Center()
  570.  
  571.  
  572.  
  573.  
  574. def OnDbCreateButtonClick(SELF,event):
  575. import sqlite3 as lite
  576. import sys
  577.  
  578. conn = lite.connect((SELF.db.GetValue() + ".db"))
  579. print "\nDataBase Created!\n"
  580.  
  581. def OnTableCreateButtonClick(SELF,event):
  582. import sqlite3 as lite
  583. import sys
  584.  
  585. conn = lite.connect((SELF.db.GetValue()))
  586. with conn:
  587. cur = conn.cursor()
  588. 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()))
  589.  
  590. print "Table Created!\n"
  591.  
  592. def OnShowButtonClick(SELF,event):
  593. import sqlite3 as lite
  594. import sys
  595.  
  596. conn = lite.connect((SELF.db.GetValue()))
  597. with conn:
  598. cur = conn.cursor()
  599.  
  600. # Fetch Columns Name From Table
  601. meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  602. columns = []
  603. for i in meta.description:
  604. columns.append(i[0])
  605.  
  606. columns = columns[1:]
  607. for i in range(len(columns)):
  608. SELF.grid.SetColLabelValue(i, columns[i])
  609.  
  610. # Populate Grid with The Values From Database
  611. all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  612. for row in all:
  613. row_num = row[0]
  614. cells = row[1:]
  615. for i in range(len(cells)):
  616. if cells[i] != None and cells[i] != "null":
  617. SELF.grid.SetCellValue(row_num, i, str(cells[i]))
  618.  
  619.  
  620. #rows = cur.fetchall()
  621. #for row in rows:
  622. #print row
  623. #print "\nId = ", row[0]
  624. #print "%s = "%(SELF.col1.GetValue()), row[1]
  625. #print "%s = "%(SELF.col2.GetValue()), row[2]
  626. #print "%s = "%(SELF.col3.GetValue()), row[3]
  627.  
  628. def OnInsertButtonClick(SELF,event):
  629. import sqlite3 as lite
  630. import sys
  631.  
  632. conn = lite.connect((SELF.db.GetValue()))
  633. with conn:
  634. cur = conn.cursor()
  635. cur.execute("INSERT INTO %s VALUES(NULL,'%s', '%s', '%s')" %(SELF.tb.GetValue(), SELF.insert1.GetValue(), SELF.insert2.GetValue(), SELF.insert3.GetValue()))
  636. print "Data Inserted!"
  637. # Fetch Columns Name From Table
  638. meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  639. columns = []
  640. for i in meta.description:
  641. columns.append(i[0])
  642.  
  643. columns = columns[1:]
  644. for i in range(len(columns)):
  645. SELF.grid.SetColLabelValue(i, columns[i])
  646.  
  647. # Populate Grid with The Values From Database
  648. all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  649. for row in all:
  650. row_num = row[0]
  651. cells = row[1:]
  652. for i in range(len(cells)):
  653. if cells[i] != None and cells[i] != "null":
  654. SELF.grid.SetCellValue(row_num, i, str(cells[i]))
  655.  
  656.  
  657. def OnDeleteButtonClick(SELF,event):
  658. import sqlite3 as lite
  659. import sys
  660.  
  661. conn = lite.connect((SELF.db.GetValue()))
  662. with conn:
  663. cur = conn.cursor()
  664. cur.execute("DELETE FROM %s WHERE ID=%s" %(SELF.tb.GetValue(), SELF.delete.GetValue()))
  665. #user = cur.fetchone()[0]
  666. #SELF.refreshGrid()
  667. # Fetch Columns Name From Table
  668. SELF.grid.ClearGrid()
  669. SELF.grid.BeginBatch()
  670.  
  671. delmsg = wx.grid.GRIDTABLE_NOTIFY_ROWS_DELETED
  672. msg = wx.grid.GridTableMessage(
  673. SELF.grid.GetTable(),
  674. delmsg,
  675.  
  676. )
  677. SELF.grid.ProcessTableMessage(msg)
  678. #msg = wx.grid.GridTableMessage(SELF.grid.GetTable(), wxGRIDTABLE_REQUEST_VIEW_GET_VALUES)
  679. SELF.grid.ProcessTableMessage(msg)
  680. SELF.grid.EndBatch()
  681.  
  682. # Fetch Columns Name From Table
  683. meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  684. columns = []
  685. for i in meta.description:
  686. columns.append(i[0])
  687.  
  688. columns = columns[1:]
  689. for i in range(len(columns)):
  690. SELF.grid.SetColLabelValue(i, columns[i])
  691.  
  692. # Populate Grid with The Values From Database
  693. all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  694. for row in all:
  695. row_num = row[0]
  696. cells = row[1:]
  697. for i in range(len(cells)):
  698. if cells[i] != None and cells[i] != "null":
  699. SELF.grid.SetCellValue(row_num, i, str(cells[i]))
  700. print "\nData Deleted!\n"
  701.  
  702.  
  703. def refreshGrid(SELF):
  704. import sqlite3 as lite
  705. import sys
  706.  
  707. conn = lite.connect((SELF.db.GetValue()))
  708. with conn:
  709. cur = conn.cursor()
  710. all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  711. for row in all:
  712. row_num = row[0]
  713. cells = row[1:]
  714.  
  715. #SELF.grid.ClearGrid()
  716. SELF.grid.BeginBatch()
  717. current, new, delmsg, addmsg = (len(cells), SELF.grid.GetNumberRows(), wxGRIDTABLE_NOTIFY_ROWS_DELETED, wxGRIDTABLE_NOTIFY_ROWS_APPENDED)
  718. if new < current:
  719. msg = wx.grid.GridTableMessage(
  720. SELF.grid.GetTable(),
  721. delmsg,
  722. new, # position
  723. current-new,
  724. )
  725. SELF.grid.ProcessTableMessage(msg)
  726. elif new > current:
  727. msg = wx.grid.GridTableMessage(
  728. SELF.grid.GetTable(),
  729. addmsg,
  730. new-current
  731. )
  732. SELF.grid.ProcessTableMessage(msg)
  733. msg = wx.grid.GridTableMessage(SELF.grid.GetTable(), wxGRIDTABLE_REQUEST_VIEW_GET_VALUES)
  734. SELF.grid.ProcessTableMessage(msg)
  735. SELF.grid.EndBatch()
  736.  
  737.  
  738.  
  739.  
  740. def OnUpdateButtonClick(SELF,event):
  741. import sqlite3 as lite
  742. import sys
  743.  
  744. conn = lite.connect((SELF.db.GetValue()))
  745. with conn:
  746. cur = conn.cursor()
  747. cur.execute("SELECT * FROM %s where Id = %s" %(SELF.tb.GetValue(), SELF.column.GetValue()))
  748. user = cur.fetchone()[0]
  749. cur.execute("UPDATE %s SET %s = '%s' where Id = %s" %(SELF.tb.GetValue(), SELF.col1.GetValue(), SELF.col11.GetValue(), SELF.column.GetValue()))
  750. cur.execute("UPDATE %s SET %s = '%s' where Id = %s" %(SELF.tb.GetValue(), SELF.col2.GetValue(), SELF.col22.GetValue(), SELF.column.GetValue()))
  751. cur.execute("UPDATE %s SET %s = '%s' where Id = %s" %(SELF.tb.GetValue(), SELF.col3.GetValue(), SELF.col33.GetValue(), SELF.column.GetValue()))
  752. # Fetch Columns Name From Table
  753. meta = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  754. columns = []
  755. for i in meta.description:
  756. columns.append(i[0])
  757.  
  758. columns = columns[1:]
  759. for i in range(len(columns)):
  760. SELF.grid.SetColLabelValue(i, columns[i])
  761.  
  762. # Populate Grid with The Values From Database
  763. all = cur.execute("SELECT * FROM %s"%(SELF.tb.GetValue()))
  764. for row in all:
  765. row_num = row[0]
  766. cells = row[1:]
  767. for i in range(len(cells)):
  768. if cells[i] != None and cells[i] != "null":
  769. SELF.grid.SetCellValue(row_num, i, str(cells[i]))
  770. print "\nData Updated!\n"
  771.  
  772.  
  773.  
  774.  
  775.  
  776. if __name__ == "__main__":
  777. app = wx.App(False)
  778. frame = MyFrame()
  779. frame.Show()
  780.  
  781. app.MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement