Advertisement
Guest User

Untitled

a guest
Nov 12th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. from tkinter import *
  2. import psycopg2
  3. import pickle
  4. import os
  5.  
  6. def windowmain(root, image=None):
  7. nb = Label(root, image=image)
  8. nb.pack(side = "bottom", fill = "both", expand = "yes")
  9. sqldataframe = Frame(nb, height=20)
  10.  
  11. sqlnameserverlabel = Label(sqldataframe, text='Имя сервера')
  12. sqlnamedblabel = Label(sqldataframe, text='Имя базы данных')
  13. sqlnamelabel = Label(sqldataframe, text="Имя пользователя")
  14. sqlpasswordlabel = Label(sqldataframe, text='Пароль')
  15. sqlportlabel = Label(sqldataframe, text='Порт')
  16.  
  17. sqlnameserverstr = Entry(sqldataframe,width=25,bd=3)
  18. sqlnamedbstr = Entry(sqldataframe,width=25,bd=3)
  19. sqlnamestr = Entry(sqldataframe,width=20,bd=3)
  20. sqlpasswordstr = Entry(sqldataframe,width=25,bd=3)
  21. sqlportstr = Entry(sqldataframe,width=5,bd=5)
  22.  
  23. sqldatasettingsframe = Frame(nb, height=30)
  24.  
  25. def checkfunc(event):
  26. try:
  27. conn = psycopg2.connect(host=sqlnameserverstr.get(), dbname=sqlnamedbstr.get(), user=sqlnamestr.get(), password=sqlpasswordstr.get(), port=sqlportstr.get())
  28. sqlstatussettingslabel.configure(text='Подключение успешно', fg='green')
  29. except psycopg2.OperationalError as e:
  30. print(e)
  31. sqlstatussettingslabel.configure(text=e, fg='red')
  32.  
  33. def savesettings(event):
  34. with open (f'{os.getcwd()}\\settings\\data.pickle', 'wb') as w:
  35. pickle.dump(sqlnameserverstr.get(), w)
  36. pickle.dump(sqlnamedbstr.get(), w)
  37. pickle.dump(sqlnamestr.get(), w)
  38. pickle.dump(sqlpasswordstr.get(), w)
  39. pickle.dump(sqlportstr.get(), w)
  40. sqlstatussettingslabel.configure(text='Данные сохранены', fg='green')
  41.  
  42. def loadsettings(event):
  43. try:
  44. with open (f'{os.getcwd()}\\settings\\data.pickle', 'rb') as r:
  45. sqlnameserverstr.delete(0)
  46. sqlnameserverstr.insert(0, pickle.load(r))
  47. sqlnamedbstr.delete(0)
  48. sqlnamedbstr.insert(0, pickle.load(r))
  49. sqlnamestr.delete(0)
  50. sqlnamestr.insert(0, pickle.load(r))
  51. sqlpasswordstr.delete(0)
  52. sqlpasswordstr.insert(0, pickle.load(r))
  53. sqlportstr.delete(0)
  54. sqlportstr.insert(0, pickle.load(r))
  55. sqlstatussettingslabel.configure(text='Данные восстановлены', fg='green')
  56. except FileNotFoundError:
  57. sqlstatussettingslabel.configure(text='Файл с настройками не обнаружен')
  58.  
  59. sqlchecksettingsbottom = Button(sqldatasettingsframe, text="Проверка подключения", height=2, bg="white")
  60. sqlstatussettingslabel = Label(sqldatasettingsframe, text='Неизвестно')
  61. sqlsavesettingsbottom = Button(sqldatasettingsframe, text="Сохранить настройки", height=2, bg="white")
  62. sqlloadsettingsbottom = Button(sqldatasettingsframe, text="Восстановить настройки", height=2, bg="white")
  63.  
  64. sqldataframe.grid(row=0,column=0, columnspan=10)
  65. sqldatasettingsframe.grid(row=1,column=0, columnspan=10)
  66.  
  67. sqlnameserverlabel.pack(side='left')
  68. sqlnameserverstr.pack(side='left')
  69. sqlnamedblabel.pack(side='left')
  70. sqlnamedbstr.pack(side='left')
  71. sqlnamelabel.pack(side='left')
  72. sqlnamestr.pack(side='left')
  73. sqlpasswordlabel.pack(side='left')
  74. sqlpasswordstr.pack(side='left')
  75. sqlportlabel.pack(side='left')
  76. sqlportstr.pack(side='left')
  77.  
  78. sqlchecksettingsbottom.grid(row=0,column=0)
  79. sqlstatussettingslabel.grid(row=0,column=1)
  80. sqlsavesettingsbottom.grid(row=0,column=2)
  81. sqlloadsettingsbottom.grid(row=0,column=3)
  82.  
  83. sqlchecksettingsbottom.bind('<Button-1>', checkfunc)
  84. sqlsavesettingsbottom.bind('<Button-1>', savesettings)
  85. sqlloadsettingsbottom.bind('<Button-1>', loadsettings)
  86.  
  87. return nb
  88.  
  89. if __name == 'main':
  90. root = Tk()
  91. root.geometry('1024x600+{}+{}'.format(int(root.winfo_screenwidth()/5), int(root.winfo_screenheight()/5)))
  92. root.title('тест настройки')
  93. root.maxsize(width=1024, height=600)
  94. root.minsize(width=1024, height=600)
  95. windowmain(root)
  96. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement