from tkinter import *
import csv
import tkinter.ttk as ttk
from tkinter.font import Font
from tkinter.ttk import Style, Treeview
from constant_ip_calc import *
class Database_window:
def search(self):
pass
def table_users(self):
self.user_list = Frame(self.root)
self.user_list.place(x = 150, y = 200)
self.heads = ['Номер пользователя','Номер записи','Время']
self.lst = [ ("0001" , 1 , '11.12.2021')]
self.table = ttk.Treeview(self.user_list, height=15, show = 'headings')
self.table['columns'] = self.heads
self.table['displaycolumns'] = ['Номер пользователя','Номер записи','Время']
for header in self.heads:
self.table.heading(header, text = header, anchor = 'center')
self.table.column(header, width= 300, minwidth = 300, anchor = 'center')
for row in self.lst:
self.table.insert('','end', values = row)
self.scroll_pane = ttk.Scrollbar(self.user_list, command = self.table.yview)
self.table.configure(yscrollcommand = self.scroll_pane.set)
self.scroll_pane.pack(side = RIGHT, fill = Y)
self.table.pack(expand = YES, fill = BOTH)
self.btn_table_user.configure(bg =color_new_btn)
self.btn_table_ip_calc.configure(bg = color_btn)
self.btn_table_mask.configure(bg = color_btn)
def table_ip_calc(self):
self.ip_calc_list = Frame(self.root)
self.ip_calc_list.place(x = 150, y = 200)
self.heads = ['Номер записи','IP-адрес','Маска подсети','Класс сети', 'Перевод в двоичную систему', 'Перевод в шестнадцатеричную систему']
self.lst = [ (1,"255.255.255.255" , 30 , 'A','10000000.10000000.10000000.10000000',":cccc:dddd")]
self.table = ttk.Treeview(self.ip_calc_list, height=15, show = 'headings')
self.table['columns'] = self.heads
self.table['displaycolumns'] = ['Номер записи','IP-адрес','Маска подсети','Класс сети', 'Перевод в двоичную систему', 'Перевод в шестнадцатеричную систему']
n = 0
wid = 100
for header in self.heads:
self.table.heading(header, text = header, anchor = 'center')
self.table.column(header, width= wid, minwidth = 100, anchor = 'center')
if n == 3:
wid = 250
n = n + 1
for row in self.lst:
self.table.insert('','end', values = row)
self.scroll_pane = ttk.Scrollbar(self.ip_calc_list, command = self.table.yview)
self.table.configure(yscrollcommand = self.scroll_pane.set)
self.scroll_pane.pack(side = RIGHT, fill = Y)
self.user_list.destroy()
self.table.pack(expand = YES, fill = BOTH)
self.btn_table_user.configure(bg = color_btn)
self.btn_table_ip_calc.configure(bg = color_new_btn)
self.btn_table_mask.configure(bg = color_btn)
def table_maska(self):
self.maska_list = Frame(self.root)
self.maska_list.place(x = 30, y = 200)
self.heads = ['Номер записи','Маска подсети','Адрес сети','Адрес узла', 'Количество узлов',
'Широковещательный адрес','Широковещательный узел','Доступные адреса','IP первый/последний','Адреса подсети']
font=Font(family="Arial", size=5)
font.metrics()
style=Style()
style.configure('Calendar.Treeview', font=font, rowheight = 100)
self.table = ttk.Treeview(self.maska_list, style = 'Calendar.Treeview', height=3, show = 'headings')
self.lst = [ (1 , '192.168.255.255' , '192.168.255.255', 120 ,'192.168.255.255','192.168.255.255' , 16 ,'192.168.255.255\n192.168.255.255' ,
'192.168.255.2555\n192.168.255.255\n192.168.255.255'),
(28 , '192.168.255.255' , '192.168.255.255', 120 ,'192.168.255.255','192.168.255.255' , 16 ,'192.168.255.255\n192.168.255.255' ,
'192.168.255.2555\n192.168.255.255\n192.168.255.255'),(1 , '192.168.255.255' , '192.168.255.255', 120 ,'192.168.255.255','192.168.255.255' , 16 ,'192.168.255.255\n192.168.255.255' ,
'192.168.255.2555\n192.168.255.255\n192.168.255.255'),(1 , '192.168.255.255' , '192.168.255.255', 120 ,'192.168.255.255','192.168.255.255' , 16 ,'192.168.255.255\n192.168.255.255' ,
'192.168.255.2555\n192.168.255.255\n192.168.255.255')]
self.table['columns'] = self.heads
self.table['displaycolumns'] = ['Номер записи','Маска подсети','Адрес сети','Адрес узла', 'Количество узлов',
'Широковещательный адрес','Широковещательный узел','Доступные адреса','IP первый/последний','Адреса подсети']
n = 0
wid = 90
for header in self.heads:
if (n == 3) or (n == 6):
wid = 110
if (n == 4) or (n == 5):
wid = 165
if (n == 7):
wid = 120
if (n == 8):
wid = 100
self.table.heading(header, text = header, anchor = 'center')
self.table.column(header,width = wid , anchor = 'center')
n = n + 1
for row in self.lst:
self.table.insert('','end', values = row)
self.scroll_pane = ttk.Scrollbar(self.maska_list, command = self.table.yview)
self.table.configure(yscrollcommand = self.scroll_pane.set)
self.scroll_pane.pack(side = RIGHT, fill = Y)
self.btn_table_user.configure(bg = color_btn)
self.btn_table_ip_calc.configure(bg = color_btn)
self.btn_table_mask.configure(bg = color_new_btn)
self.table.pack(expand = YES, fill = BOTH)
def chek_user(self):
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_user = 1
if chek_table_ip == 1:
self.ip_calc_list.destroy()
chek_table_ip = 0
if chek_table_mask == 1:
self.maska_list.destroy()
chek_table_mask = 0
def chek_ip(self):
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_ip = 1
if chek_table_user == 1:
chek_table_user = 0
self.user_list.destroy()
else:
pass
if chek_table_mask == 1:
chek_table_mask = 0
self.maska_list.destroy()
def chek_maska(self):
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_mask = 1
if chek_table_ip == 1:
self.ip_calc_list.destroy()
chek_table_ip = 0
if chek_table_mask == 1:
self.user_list.destroy()
chek_table_user = 0
def start_table_user(self):
self.table_users()
self.chek_user()
def start_table_ip(self):
self.table_ip_calc()
self.chek_ip()
def start_table_maska(self):
self.table_maska()
self.chek_maska()
def __init__(self, parent, title="База данных", resizable=(False, False), icon = None):
self.root = Toplevel(parent)
self.root.title(title)
self.root.geometry("1200x600+200+200")
self.root.config(bg = color)
self.file_frame_table = LabelFrame(self.root, text = 'Таблицы')
self.file_frame_table.place(height = 150, width = 150, x = 380, y = 30 )
self.file_frame_search = LabelFrame(self.root, text = 'Поиск')
self.file_frame_search.place(height = 150, width = 300, x = 20 , y = 30 )
self.file_frame_search = LabelFrame(self.root, text = 'База данных')
self.file_frame_search.place(height = 370, width = 1175, x = 20 , y = 180 )
self.label_ip = Label(self.root, text = 'База данных', bg = color, font = font_label)
self.label_ip.place(x = 450, y = 8)
self.entry_search = Entry(self.root)
self.entry_search.place(x= 60, y = 55, width = 150)
self.btn_table_user = Button(self.root, text = 'Операции' ,bg = color_btn, command = self.start_table_user)
self.btn_table_user.place(x = 400, y = 50)
self.btn_table_ip_calc = Button(self.root, text = 'IP-калькулятор',bg = color_btn, command = self.start_table_ip)
self.btn_table_ip_calc.place(x= 400 , y = 90)
self.btn_table_mask = Button(self.root, text = 'Маска' , bg = color_btn, command = self.start_table_maska)
self.btn_table_mask.place(x = 400, y = 130)
self.btn_search = Button(self.root, text = 'Поиск',activebackground = color_new_btn, bg = color_btn,)
self.btn_search.place(x = 220, y = 50)
self.btn_destroy = Button(self.root, text = 'Вернуться к окну IP-калькулятор',bg = color_btn,activebackground = color_new_btn, command = self.destroy_window_database)
self.btn_destroy.place(x = 990, y = 50)
self.table_users()
self.grab_focus()
if icon:
self.root.iconbitmap(icon)
def grab_focus(self):
self.root.grab_set()
self.root.focus_set()
self.root.wait_window()
def destroy_window_database(self):
self.root.destroy()
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_user = 0
chek_table_ip = 0
chek_table_mask = 0
Соседние файлы в папке view