Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import psycopg2
- import pickle
- import os
- def windowmain(root, image=None):
- nb = Label(root, image=image)
- nb.pack(side = "bottom", fill = "both", expand = "yes")
- sqldataframe = Frame(nb, height=20)
- sqlnameserverlabel = Label(sqldataframe, text='Имя сервера')
- sqlnamedblabel = Label(sqldataframe, text='Имя базы данных')
- sqlnamelabel = Label(sqldataframe, text="Имя пользователя")
- sqlpasswordlabel = Label(sqldataframe, text='Пароль')
- sqlportlabel = Label(sqldataframe, text='Порт')
- sqlnameserverstr = Entry(sqldataframe,width=25,bd=3)
- sqlnamedbstr = Entry(sqldataframe,width=25,bd=3)
- sqlnamestr = Entry(sqldataframe,width=20,bd=3)
- sqlpasswordstr = Entry(sqldataframe,width=25,bd=3)
- sqlportstr = Entry(sqldataframe,width=5,bd=5)
- sqldatasettingsframe = Frame(nb, height=30)
- def checkfunc(event):
- try:
- conn = psycopg2.connect(host=sqlnameserverstr.get(), dbname=sqlnamedbstr.get(), user=sqlnamestr.get(), password=sqlpasswordstr.get(), port=sqlportstr.get())
- sqlstatussettingslabel.configure(text='Подключение успешно', fg='green')
- except psycopg2.OperationalError as e:
- print(e)
- sqlstatussettingslabel.configure(text=e, fg='red')
- def savesettings(event):
- with open (f'{os.getcwd()}\\settings\\data.pickle', 'wb') as w:
- pickle.dump(sqlnameserverstr.get(), w)
- pickle.dump(sqlnamedbstr.get(), w)
- pickle.dump(sqlnamestr.get(), w)
- pickle.dump(sqlpasswordstr.get(), w)
- pickle.dump(sqlportstr.get(), w)
- sqlstatussettingslabel.configure(text='Данные сохранены', fg='green')
- def loadsettings(event):
- try:
- with open (f'{os.getcwd()}\\settings\\data.pickle', 'rb') as r:
- sqlnameserverstr.delete(0)
- sqlnameserverstr.insert(0, pickle.load(r))
- sqlnamedbstr.delete(0)
- sqlnamedbstr.insert(0, pickle.load(r))
- sqlnamestr.delete(0)
- sqlnamestr.insert(0, pickle.load(r))
- sqlpasswordstr.delete(0)
- sqlpasswordstr.insert(0, pickle.load(r))
- sqlportstr.delete(0)
- sqlportstr.insert(0, pickle.load(r))
- sqlstatussettingslabel.configure(text='Данные восстановлены', fg='green')
- except FileNotFoundError:
- sqlstatussettingslabel.configure(text='Файл с настройками не обнаружен')
- sqlchecksettingsbottom = Button(sqldatasettingsframe, text="Проверка подключения", height=2, bg="white")
- sqlstatussettingslabel = Label(sqldatasettingsframe, text='Неизвестно')
- sqlsavesettingsbottom = Button(sqldatasettingsframe, text="Сохранить настройки", height=2, bg="white")
- sqlloadsettingsbottom = Button(sqldatasettingsframe, text="Восстановить настройки", height=2, bg="white")
- sqldataframe.grid(row=0,column=0, columnspan=10)
- sqldatasettingsframe.grid(row=1,column=0, columnspan=10)
- sqlnameserverlabel.pack(side='left')
- sqlnameserverstr.pack(side='left')
- sqlnamedblabel.pack(side='left')
- sqlnamedbstr.pack(side='left')
- sqlnamelabel.pack(side='left')
- sqlnamestr.pack(side='left')
- sqlpasswordlabel.pack(side='left')
- sqlpasswordstr.pack(side='left')
- sqlportlabel.pack(side='left')
- sqlportstr.pack(side='left')
- sqlchecksettingsbottom.grid(row=0,column=0)
- sqlstatussettingslabel.grid(row=0,column=1)
- sqlsavesettingsbottom.grid(row=0,column=2)
- sqlloadsettingsbottom.grid(row=0,column=3)
- sqlchecksettingsbottom.bind('<Button-1>', checkfunc)
- sqlsavesettingsbottom.bind('<Button-1>', savesettings)
- sqlloadsettingsbottom.bind('<Button-1>', loadsettings)
- return nb
- if __name == 'main':
- root = Tk()
- root.geometry('1024x600+{}+{}'.format(int(root.winfo_screenwidth()/5), int(root.winfo_screenheight()/5)))
- root.title('тест настройки')
- root.maxsize(width=1024, height=600)
- root.minsize(width=1024, height=600)
- windowmain(root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement