import glob import wx import wx.lib.buttons as buttons import numpy as np import pandas as pd BG_IMG = 'icon.png' COLUMN_NAMES = np.flip(['Server name', 'Port number', 'Status', 'Source IP', 'Destination IP', 'Source port number', 'Destination port number', 'Number of requests made since flag', 'Date', 'Process Name', 'Address hostname', 'Refresh rate']) TEST_FILE = pd.read_csv('out.csv', ) TEST_FILE = TEST_FILE.iloc[1:, :] TEST_FILE.columns = ['Server name', 'Port number', 'Status', 'Source IP', 'Destination IP', 'Source port'] print(TEST_FILE) print(len(TEST_FILE)) print(TEST_FILE.iloc[1, 1]) class OtherFrame(wx.Frame): """ Class used for creating frames other than the main one """ def __init__(self): wx.Frame.__init__(self, None, -1, 'Server Panel', size=(600, 250)) panel = ServerPanel(self) self.Show() def on_edit(self, event): print('in on_edit') def update_mp3_listing(self, folder_path): print(folder_path) def on_window(self, event): return class HelpFrame(wx.Frame): """ Class used for creating frames other than the main one """ def __init__(self): wx.Frame.__init__(self, None, -1, 'Help', size=(600, 250)) panel = HelpPanel(self) self.Show() # Panel with all the login widgets class LoginPanel(wx.Panel): def __init__(self, parent): super(LoginPanel, self).__init__(parent) self.SetBackgroundColour((44, 51, 51)) basicLabel = wx.StaticText(self, -1, "Username") basicLabel.SetForegroundColour((255,255,255)) basicText = wx.TextCtrl(self, -1, "", size=(175, -1)) # basicText.SetInsertionPoint(0) pwdLabel = wx.StaticText(self, -1, "Password") pwdText = wx.TextCtrl(self, -1, "", size=(175, -1), style=wx.TE_PASSWORD) pwdLabel.SetForegroundColour((255, 255, 255)) vbox = wx.BoxSizer(wx.VERTICAL) hbox = wx.BoxSizer(wx.HORIZONTAL) vbox.Add(basicLabel, 0, wx.ALIGN_CENTER | 100, 5) vbox.Add(basicText, 0, wx.ALIGN_CENTER | 100, 5) vbox.Add(pwdLabel, 0, wx.ALIGN_CENTER | 100, 5) vbox.Add(pwdText, 0, wx.ALIGN_CENTER | 100, 5) login_button = wx.Button(self, label='Login') login_button.Bind(wx.EVT_BUTTON, self.on_login) help_button = wx.Button(self, label='Help') help_button.Bind(wx.EVT_BUTTON, self.on_help) # signup_button = wx.Button(self, label='Sign Up') hbox.Add(login_button, 0, wx.ALL | 200, 20) # hbox.Add(signup_button, 0, wx.ALL | 200, 20) hbox.Add(help_button, 0, wx.ALL | 200, 20) vbox.Add(hbox, 0, wx.ALIGN_CENTER | 100, 5) self.SetSizer(vbox) def on_login(self, event): OtherFrame() def on_help(self, event): HelpFrame() # Panel with all the login widgets class HelpPanel(wx.Panel): def __init__(self, parent): super(HelpPanel, self).__init__(parent) self.SetBackgroundColour((44, 51, 51)) # basicLabel = wx.StaticText(self, -1, "Username") # basicLabel.SetForegroundColour((255,255,255)) # basicText = wx.TextCtrl(self, -1, "", size=(175, -1)) # # # basicText.SetInsertionPoint(0) # pwdLabel = wx.StaticText(self, -1, "Password") # pwdText = wx.TextCtrl(self, -1, "", size=(175, -1), style=wx.TE_PASSWORD) # pwdLabel.SetForegroundColour((255, 255, 255)) # vbox = wx.BoxSizer(wx.VERTICAL) # hbox = wx.BoxSizer(wx.HORIZONTAL) # vbox.Add(basicLabel, 0, wx.ALIGN_CENTER | 100, 5) # vbox.Add(basicText, 0, wx.ALIGN_CENTER | 100, 5) # vbox.Add(pwdLabel, 0, wx.ALIGN_CENTER | 100, 5) # vbox.Add(pwdText, 0, wx.ALIGN_CENTER | 100, 5) # login_button = wx.Button(self, label='Login') # login_button.Bind(wx.EVT_BUTTON, self.on_login) # help_button = wx.Button(self, label='Help') # # signup_button = wx.Button(self, label='Sign Up') # hbox.Add(login_button, 0, wx.ALL | 200, 20) # # hbox.Add(signup_button, 0, wx.ALL | 200, 20) # hbox.Add(help_button, 0, wx.ALL | 200, 20) # vbox.Add(hbox, 0, wx.ALIGN_CENTER | 100, 5) # self.SetSizer(vbox) class ServerPanel(wx.Panel): def __init__(self, parent): super().__init__(parent, size=(500, 500)) self.SetBackgroundColour((44, 51, 51)) # self.toolbar = self.CreateToolBar() # tb = wx.ToolBar(self, -1) main_sizer = wx.BoxSizer(wx.VERTICAL) secondary_sizer = wx.BoxSizer(wx.HORIZONTAL) self.row_obj_dict = {} self.list_ctrl = wx.ListCtrl( self, size=(-1, 75), style=wx.LC_REPORT | wx.BORDER_SUNKEN ) # self.pnl1.SetBackgroundColour(wx.BLACK) self.handle_columns() for i in range(len(TEST_FILE)): self.list_ctrl.InsertItem(i, TEST_FILE.iloc[i, 0]) for j in range(1, 5): self.list_ctrl.SetItem(i, j, TEST_FILE.iloc[i, j]) main_sizer.Add(self.list_ctrl, 0, wx.ALL | wx.EXPAND, 20) start_button = wx.Button(self, label='Start') start_button.SetBackgroundColour((205, 215, 206)) start_button.Bind(wx.EVT_BUTTON, self.on_edit) start_button.Bind(wx.EVT_ENTER_WINDOW, self.on_edit) stop_button = wx.Button(self, label='Stop') stop_button.SetBackgroundColour('#F08080') secondary_frame_button = wx.Button(self, label='Window') secondary_frame_button.Bind(wx.EVT_BUTTON, self.on_window) # wx.BORDER(stop_button, wx.BORDER_NONE) stop_button.Bind(wx.EVT_BUTTON, self.on_edit) main_sizer.Add(start_button, 0, wx.CENTER | wx.ALL | 100, 5) main_sizer.Add(stop_button, 0, wx.CENTER | 100, 5) main_sizer.Add(secondary_frame_button, 0, wx.CENTER | 100, 5) self.SetSizer(main_sizer) def handle_columns(self): for col in COLUMN_NAMES: self.list_ctrl.InsertColumn(0, col, width=200) def on_edit(self, event): print('in on_edit') def update_mp3_listing(self, folder_path): print(folder_path) def on_window(self, event): OtherFrame() def ShowImage(self, imageFile): if imageFile == "": self.bitmap = wx.StaticBitmap(self, -1, size=(0, 0)) else: bmp = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap() self.bitmap = wx.StaticBitmap(self, -1, bmp, (0, 0)) class ServerFrame(wx.Frame): def __init__(self): super().__init__(parent=None, title='Server Dashboard') self.panel = LoginPanel(self) # image = wx.StaticBitmap(self, wx.ID_ANY) # image.SetBitmap(wx.Bitmap('WXPython.png')) self.Show() if __name__ == '__main__': app = wx.App(False) frame = ServerFrame() app.MainLoop()