gui

 avatar
unknown
plain_text
2 years ago
29 kB
2
Indexable
import tkinter as tk
from tkinter import *
from tkinter import ttk
from functools import partial
from datetime import datetime

from GUI.ramka import OutFrame

#import serial

# ser = serial.Serial('COM4', 19200, 8, 'N', 1)


LARGE_FONT = ("Roboto", 12)
MID_FONT = ("Roboto", 9)

buttonIconOnOff = [False, False, False, False, False, False, False, False]
lista = [[None, None] for _ in range(8)]
class Application(tk.Tk):
    WIDTH = 780
    HEIGHT = 520

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        tk.Tk.wm_title(self, "OUT Menager")
        self.geometry(f"{Application.WIDTH}x{Application.HEIGHT}")
        self.resizable(False, False)

        container = tk.Frame(self)
        container.grid(column=0, row=0, sticky='nsew')

        self.frames = {}

        for F in (StartPage, PageOne):
            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):
        frame = self.frames[cont]
        frame.tkraise()


def qf():
    print("done")


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.grid_rowconfigure(0, weight=1)
        self.grid_rowconfigure(1, weight=1)
        self.grid_columnconfigure(0, weight=4)
        self.grid_columnconfigure(1, weight=1)

        outs_frame = tk.LabelFrame(self, height=500, width=620,
                                   text='   STEROWANIE WYJSCIAMI   ', font=LARGE_FONT
                                   )
        outs_frame.grid_propagate(False)
        outs_frame.grid(row=0, rowspan=2, column=0, sticky='', ipadx=12, padx=10, pady=10)
        outs_frame.grid_rowconfigure(0, weight=1)
        outs_frame.grid_rowconfigure(1, weight=1)
        outs_frame.grid_columnconfigure(0, weight=1)
        outs_frame.grid_columnconfigure(1, weight=1)
        outs_frame.grid_columnconfigure(2, weight=1)
        outs_frame.grid_columnconfigure(3, weight=1)

        right_bar = ttk.Frame(self, width=140, height=520)
        right_bar.grid(row=0, rowspan=2, column=1, sticky='nsew')
        right_bar.grid_propagate(False)

        self.buttonIconCfg = tk.PhotoImage(file='UI/images/cfg.png')
        button1 = ttk.Button(master=right_bar, text="OUT CFG",
                             image=self.buttonIconCfg, compound='bottom',
                             command=lambda: controller.show_frame(PageOne))
        button1.grid(row=0, column=0, sticky='', pady=20)

        buttonIconOff = tk.PhotoImage(file='UI/images/bulboff2.png')
        buttonIconOn = tk.PhotoImage(file='UI/images/bulbon2.png')
        buttonIcon = buttonIconOff

        def button1click():
            if (bulb_button1['text'] == 'Off'):
                            bulb_button1['text'] = 'On'
                            bulb_button1['image'] = buttonIconOn
                            today = datetime.now()
                            dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                            print("wybrałeś diodę nr 1 i zmieniłeś jej stan dnia: ", dt_string)
                            if lista[0][0] == 1 and lista[0][1]:
                                print("dioda została włączona z numerem wejścia centrali: " + str(lista[0][1]))
                            if lista[0][0] == 2 and lista[0][1]:
                                print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[0][1]))
                            if lista[0][0] == 1 and lista[0][1]:
                                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                                    1) + "\ndioda została włączona " \
                                             + "oraz numerem wejścia centrali: " + str(lista[0][1])

                            if lista[0][0] == 2 and lista[0][1]:
                                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                                    1) + "\nz funkcją wyjścia:(state switch) " \
                                             + "oraz numerem wejścia centrali: " + str(lista[0][1])

                            with open('changeData.txt', "a") as f:
                                f.write(changeData)
                            hexString = OutFrame(lista[0][0], '1111', lista[0][1])
                            #ser.write(binaryNotation)

            else:
                bulb_button1['text'] = 'Off'
                bulb_button1['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 1 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    1) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[0][0], '1111', lista[0][1])
                #ser.write(hexString)

        def button2click():
            if (bulb_button2['text'] == 'Off'):
                bulb_button2['text'] = 'On'
                bulb_button2['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 2 i zmieniłeś jej stan dnia: ", dt_string)
                if lista[1][0] == 1 and lista[1][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[1][1]))
                if lista[1][0] == 2 and lista[1][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[1][1]))
                if lista[1][0] == 1 and lista[1][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        2) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[1][1])

                if lista[1][1] == 2 and lista[1][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        2) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[1][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[1][0], '1111', lista[1][1])
                # ser.write(binaryNotation)

            else:
                bulb_button2['text'] = 'Off'
                bulb_button2['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 2 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    2) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[1][0], '1111', lista[1][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        def button3click():
            if (bulb_button3['text'] == 'Off'):
                bulb_button3['text'] = 'On'
                bulb_button3['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 3")
                if lista[2][0] == 1 and lista[2][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[2][1]))
                if lista[2][0] == 2 and lista[2][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[2][1]))
                if lista[2][0] == 1 and lista[2][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        3) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[2][1])

                if lista[2][1] == 2 and lista[2][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        3) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[2][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[2][0], '1111', lista[2][1])
                # ser.write(binaryNotation)

            else:
                bulb_button3['text'] = 'Off'
                bulb_button3['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 3 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    3) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[2][0], '1111', lista[2][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        def button4click():
            if (bulb_button4['text'] == 'Off'):
                bulb_button4['text'] = 'On'
                bulb_button4['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 4")
                if lista[3][0] == 1 and lista[3][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[3][1]))
                if lista[3][0] == 2 and lista[3][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[3][1]))
                if lista[3][0] == 1 and lista[3][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        4) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[3][1])

                if lista[3][1] == 2 and lista[3][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        4) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[3][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[3][0], '1111', lista[3][1])
                # ser.write(binaryNotation)

            else:
                bulb_button4['text'] = 'Off'
                bulb_button4['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 4 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    4) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[3][0], '1111', lista[3][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        def button5click():
            if (bulb_button5['text'] == 'Off'):
                bulb_button5['text'] = 'On'
                bulb_button5['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 5")
                if lista[4][0] == 1 and lista[4][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[4][1]))
                if lista[4][0] == 2 and lista[4][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[4][1]))
                if lista[4][0] == 1 and lista[4][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        5) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[4][1])

                if lista[4][1] == 2 and lista[4][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        5) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[4][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[4][0], '1111', lista[4][1])
                # ser.write(binaryNotation)

            else:
                bulb_button5['text'] = 'Off'
                bulb_button5['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 5 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    5) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[4][0], '1111', lista[4][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        def button6click():
            if (bulb_button6['text'] == 'Off'):
                bulb_button6['text'] = 'On'
                bulb_button6['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 6")
                if lista[5][0] == 1 and lista[5][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[5][1]))
                if lista[5][0] == 2 and lista[5][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[5][1]))
                if lista[5][0] == 1 and lista[5][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        6) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[5][1])

                if lista[5][1] == 2 and lista[5][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        6) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[5][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[3][0], '1111', lista[3][1])
                # ser.write(binaryNotation)

            else:
                bulb_button6['text'] = 'Off'
                bulb_button6['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 6 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    6) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[5][0], '1111', lista[5][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        def button7click():
            if (bulb_button7['text'] == 'Off'):
                bulb_button7['text'] = 'On'
                bulb_button7['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 7")
                if lista[6][0] == 1 and lista[6][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[6][1]))
                if lista[6][0] == 2 and lista[6][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[6][1]))
                if lista[6][0] == 1 and lista[6][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        7) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[6][1])

                if lista[6][1] == 2 and lista[6][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        7) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[6][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[6][0], '1111', lista[6][1])
                # ser.write(binaryNotation)

            else:
                bulb_button7['text'] = 'Off'
                bulb_button7['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 7 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    7) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[6][0], '1111', lista[6][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        def button8click():
            if (bulb_button8['text'] == 'Off'):
                bulb_button8['text'] = 'On'
                bulb_button8['image'] = buttonIconOn
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 8")
                if lista[7][0] == 1 and lista[7][1]:
                    print("dioda została włączona z numerem wejścia centrali: " + str(lista[7][1]))
                if lista[7][0] == 2 and lista[7][1]:
                    print("dioda zmieniła stan z numerem wejcia centrali " + str(lista[7][1]))
                if lista[7][0] == 1 and lista[7][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        8) + "\ndioda została włączona " \
                                 + "oraz numerem wejścia centrali: " + str(lista[7][1])

                if lista[7][1] == 2 and lista[7][1]:
                    changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                        8) + "\nz funkcją wyjścia:(state switch) " \
                                 + "oraz numerem wejścia centrali: " + str(lista[7][1])

                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[7][0], '1111', lista[7][1])
                # ser.write(binaryNotation)

            else:
                bulb_button8['text'] = 'Off'
                bulb_button8['image'] = buttonIconOff
                today = datetime.now()
                dt_string = today.strftime("%d/%m/%Y %H:%M:%S")
                print("wybrałeś diodę nr 8 która zostanie wyłączona: ", dt_string)
                changeData = "\nzmiana parametrów dla diody pierwszej były dnia: " + dt_string + "\ndla diody nr: " + str(
                    8) + "\ndioda została wyłączona "
                with open('changeData.txt', "a") as f:
                    f.write(changeData)
                hexString = OutFrame(lista[7][0], '1111', lista[7][1])
                print("wypisz ciag binarny ", hexString)
                # ser.write(hexString)

        bulb_button1 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button1click)
        bulb_button1.grid(row=0, column=0, sticky='')

        bulb_button2 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button2click)
        bulb_button2.grid(row=0, column=1, sticky='')

        bulb_button3 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button3click)
        bulb_button3.grid(row=0, column=2, sticky='')

        bulb_button4 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button4click)
        bulb_button4.grid(row=0, column=3, sticky='')

        bulb_button5 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button5click)
        bulb_button5.grid(row=1, column=0, sticky='')

        bulb_button6 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button6click)
        bulb_button6.grid(row=1, column=1, sticky='')

        bulb_button7 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button7click)
        bulb_button7.grid(row=1, column=2, sticky='')

        bulb_button8 = ttk.Button(master=outs_frame, text='Off', image=buttonIcon,
                                  compound=tk.BOTTOM, command=button8click)
        bulb_button8.grid(row=1, column=3, sticky='')


class PageOne(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        self.outs_cfg_frame = tk.LabelFrame(self, height=500, width=620,
                                            text='   USTAWIENIA WYJŚCIA  ', font=LARGE_FONT
                                            )
        self.outs_cfg_frame.grid_propagate(False)
        self.outs_cfg_frame.grid(row=0, rowspan=2, column=0, sticky='', ipadx=12, padx=10, pady=10)
        self.outs_cfg_frame.grid_rowconfigure(0, weight=1)
        self.outs_cfg_frame.grid_rowconfigure(1, weight=1)
        self.outs_cfg_frame.grid_rowconfigure(2, weight=1)
        self.outs_cfg_frame.grid_columnconfigure(0, weight=1)
        self.outs_cfg_frame.grid_columnconfigure(1, weight=1)

        self.nr_button = tk.LabelFrame(master=self.outs_cfg_frame, text=' KONFIGURACJA PRZYCISKU   ', font=MID_FONT,
                                       labelanchor='n')
        self.nr_button.grid(row=0, column=1, sticky='nsew', padx=10, pady=10)

        vlist = {"OUT_1": 0, "OUT_2": 1, "OUT_3": 2, "OUT_4": 3, "OUT_5": 4, "OUT_6": 5, "OUT_7": 6, "OUT_8": 7}

        # selected_value = tk.StringVar()
        Combo = ttk.Combobox(master=self.nr_button, values=list(vlist.keys()))
        Combo.set("WYBIERZ PRZYCISK")

        def on_select_first_value(event):
            selected_value = Combo.get()
            global zmienna
            zmienna = vlist.get(selected_value)
            print("Wybrana wartość: ", selected_value)

        Combo.bind("<<ComboboxSelected>>", on_select_first_value)

        # def get_selected_value():
        #     selected_value = Combo.get()
        #     global zmienna
        #     zmienna = vlist.get(selected_value)
        #     print("Wybrana wartość: ", selected_value)

        # Tworzenie przycisku do wywołania funkcji
        # button = Button(master=self.nr_button, text="Pobierz wybraną wartość", command=get_selected_value)
        # button.grid(row=1, column=0, sticky='', pady=20)

        Combo.grid(row=0, column=0, sticky='', padx=20, pady=20)
        self.funkcja = tk.LabelFrame(master=self.outs_cfg_frame, text='   FUNKCJA WYJŚCIA   ', font=MID_FONT,
                                     labelanchor='n')
        self.funkcja.grid(row=1, column=1, sticky='nsew', padx=10, pady=10)

        #akcja----------------------------------------------------------------------------------------------
        #akcja = ["ON", "OFF", "STATE SWIT3CH"]
        akcja = {"ON": 1, "OFF": 0, "STATE SWITCH": 2}
        # selected_value = tk.StringVar()
        Combo2 = ttk.Combobox(master=self.funkcja, values=list(akcja.keys()))
        Combo2.set("WYBIERZ FUNKCJE")

        def get_selected_value2(event):
            selected_value2 = Combo2.get()
            test = akcja.get(selected_value2)
            global value2
            value2 = test
            print("Wybrana wartość: ", test)

        Combo2.bind("<<ComboboxSelected>>", get_selected_value2)

        # def get_selected_value2():
        #     selected_value2 = Combo2.get()
        #     test = akcja.get(selected_value2)
        #     lista[zmienna][0] = test
        #     print("Wybrana wartość: ", selected_value2)

        # Tworzenie przycisku do wywołania funkcji
        # button2 = Button(master=self.funkcja, text="Pobierz wartość wyjścia", command=get_selected_value2)
        # button2.grid(row=1, column=0, sticky='', pady=20)

        Combo2.grid(row=0, column=0, sticky='', padx=20, pady=20)

        self.wyj = tk.LabelFrame(master=self.outs_cfg_frame, text='   WYBIERZ NR WYJŚĆ CENTRALI   ', font=MID_FONT,
                                 labelanchor='n')
        self.wyj.grid(row=2, column=1, sticky='nsew', padx=10, pady=10)

        wyjscia = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]

        Combo3 = ttk.Combobox(master=self.wyj, values=wyjscia)
        Combo3.set("WYBIERZ WYJŚCIE")
        Combo3.grid(row=0, column=0, sticky='NSEW', padx=20, pady=20)

        def get_selected_value3(event):
            selected_value3 = Combo3.get()
            #lista[zmienna][1] = selected_value3
            global value3
            value3 = int(selected_value3)
            print("Wybrana wartość: ", selected_value3)

        Combo3.bind("<<ComboboxSelected>>", get_selected_value3)

        # def get_selected_value3():
        #     selected_value3 = Combo3.get()
        #     lista[zmienna][1] = selected_value3
        #     print("Wybrana wartość: ", selected_value3)

        # Tworzenie przycisku do wywołania funkcji

        def saveParameters():
            lista[zmienna][0] = value2
            lista[zmienna][1] = value3

        saveButton = Button(master=self.wyj, text="Zapisz wybrane parametry", command=saveParameters)
        saveButton.grid(row=1, column=0, sticky='', pady=20)

        self.IconOn = tk.PhotoImage(file='UI/images/bulbon1.png')

        out_im = tk.Label(master=self.outs_cfg_frame, image=self.IconOn)
        out_im.grid(row=0, column=0, rowspan=3, sticky='', padx=20, pady=20)

        self.right_bar = ttk.Frame(self, width=140, height=520)
        self.right_bar.grid(row=0, column=1, sticky='nsew')

        self.buttonIconOUTs = tk.PhotoImage(file='UI/images/bulbon3.png')
        button1 = ttk.Button(master=self.right_bar, text="OUT's",
                             image=self.buttonIconOUTs, compound='bottom',
                             command=lambda: controller.show_frame(StartPage))
        button1.grid(row=0, column=0, sticky='', pady=20)


app = Application()
app.eval('tk::PlaceWindow . center')

app.mainloop()