4.0 Alpha (Build 19354)
This commit is contained in:
4
.idea/workspace.xml
generated
4
.idea/workspace.xml
generated
@@ -84,6 +84,8 @@
|
|||||||
<workItem from="1576512214017" duration="18989000" />
|
<workItem from="1576512214017" duration="18989000" />
|
||||||
<workItem from="1576602751700" duration="601000" />
|
<workItem from="1576602751700" duration="601000" />
|
||||||
<workItem from="1576774425640" duration="14534000" />
|
<workItem from="1576774425640" duration="14534000" />
|
||||||
|
<workItem from="1576793801825" duration="187000" />
|
||||||
|
<workItem from="1576880469699" duration="1987000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
@@ -106,6 +108,6 @@
|
|||||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||||
<SUITE FILE_PATH="coverage/GeneratorCSV_3_1$generator.coverage" NAME="generator Coverage Results" MODIFIED="1575142941417" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/GeneratorCSV_3_1$generator.coverage" NAME="generator Coverage Results" MODIFIED="1575142941417" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
<SUITE FILE_PATH="coverage/Wersja_Under_Construction$generator.coverage" NAME="generator Coverage Results" MODIFIED="1575214162661" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/Wersja_Under_Construction$generator.coverage" NAME="generator Coverage Results" MODIFIED="1575214162661" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
<SUITE FILE_PATH="coverage/Generator_CSV$generator.coverage" NAME="generator Coverage Results" MODIFIED="1576792407842" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
<SUITE FILE_PATH="coverage/Generator_CSV$generator.coverage" NAME="generator Coverage Results" MODIFIED="1576882511441" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -40,3 +40,8 @@
|
|||||||
|
|
||||||
4.0 Alpha (Build 19353)
|
4.0 Alpha (Build 19353)
|
||||||
- Ukończenie ustawień
|
- Ukończenie ustawień
|
||||||
|
|
||||||
|
4.0 Alpha (Build 19354)
|
||||||
|
- Przeniesienie głównego modułu do folderu nadrzędnego zamiast pliku inicjacji
|
||||||
|
- Zmieniony sposób ładowania modułów
|
||||||
|
- Ulepszona obsługa wyjątków dla ładowania modułów
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,791 +0,0 @@
|
|||||||
"""
|
|
||||||
# GeneratorCSV
|
|
||||||
# Wersja 4.0 Experimental
|
|
||||||
# by Mateusz Skoczek
|
|
||||||
# luty 2019 - grudzień 2019
|
|
||||||
# dla ZSP Sobolew
|
|
||||||
|
|
||||||
#
|
|
||||||
# Główny plik składowy programu
|
|
||||||
#
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------- # Informacje o programie # -------------------------------------------- #
|
|
||||||
|
|
||||||
Nazwa = 'GeneratorCSV'
|
|
||||||
Wersja = '4.0 Experimental'
|
|
||||||
LataPracy = '2019'
|
|
||||||
Autorzy = 'Mateusz Skoczek'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------- # Definicja kodów dialogowych # ------------------------------------------ #
|
|
||||||
|
|
||||||
E003x01 = ["Nie podano lokalizacji plików do importu. (E003x01)", False]
|
|
||||||
E003x02 = ["Nie podano lokalizacji zapisu wygenerowanych plików. (E003x02)", False]
|
|
||||||
|
|
||||||
E003x111 = ["Plik podany w sciezce 1 nie istnieje (E003x111)", False]
|
|
||||||
E003x112 = ["Plik podany w sciezce 2 nie istnieje (E003x112)", False]
|
|
||||||
E003x113 = ["Plik podany w sciezce 3 nie istnieje (E003x113)", False]
|
|
||||||
E003x114 = ["Plik podany w sciezce 4 nie istnieje (E003x114)", False]
|
|
||||||
|
|
||||||
A001 = "Czy na pewno chcesz rozpocząć generowanie?\nProgram utworzy w podanej lokalizacji pliki 'email.csv' i 'office.csv'.\nJeżeli w podanej lokalizacji istnieją pliki o takich nazwach zostaną one nadpisane."
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
|
|
||||||
|
|
||||||
# Biblioteki zewnętrzne
|
|
||||||
import os as OS
|
|
||||||
import sys as SS
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Moduły składowe programu
|
|
||||||
try:
|
|
||||||
import dialog as MDdlg
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
print('Nie znaleziono modułu programu (dialog.py)\nNie można załadować programu\nKod błędu: E00x0001')
|
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
|
||||||
SS.exit(0)
|
|
||||||
|
|
||||||
try:
|
|
||||||
import load_config as MDlcg
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
print('Nie znaleziono modułu programu (load_config.py)\nNie można załadować programu\nKod błędu: E00x0002')
|
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
|
||||||
SS.exit(0)
|
|
||||||
|
|
||||||
try:
|
|
||||||
import load_format as MDlfm
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
print('Nie znaleziono modułu programu (load_format.py)\nNie można załadować programu\nKod błędu: E00x0003')
|
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
|
||||||
SS.exit(0)
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
import processing as MDprc
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
print('Nie znaleziono modułu programu (processing.py)\nNie można załadować programu\nKod błędu: E00x0004')
|
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
|
||||||
SS.exit(0)
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
# Biblioteki zewnętrzne interfejsu graficznego
|
|
||||||
from tkinter import filedialog as TKfld
|
|
||||||
from tkinter import ttk as TKttk
|
|
||||||
import tkinter as TK
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------- # Uruchomienie interfejsu graficznego # -------------------------------------- #
|
|
||||||
|
|
||||||
# Zmienne globalne środowiska graficznego
|
|
||||||
if int(MDlcg.read()[0]) == 1:
|
|
||||||
CiemnyMotyw = True
|
|
||||||
else:
|
|
||||||
CiemnyMotyw = False
|
|
||||||
SzerokoscOpisu = 17
|
|
||||||
SzerokoscOpisu2 = 30
|
|
||||||
SzerokoscOpisu3 = 10
|
|
||||||
SzerokoscPola = 122
|
|
||||||
SzerokoscPola2 = 107
|
|
||||||
SzerokoscPola3 = 130
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Motyw
|
|
||||||
if CiemnyMotyw:
|
|
||||||
ZmienneMotywu = ['#1F1F1F', '#191919', '#B8B8B8', '#FFFFFF', '#404040', '#FFFFFF', '#1F1F1F', 1]
|
|
||||||
else:
|
|
||||||
ZmienneMotywu = ['#F0F0F0', '#D4D4D4', '#000000', '#000000', '#A6A6A6', '#000000', '#FFFFFF', 2]
|
|
||||||
|
|
||||||
M_tlo = ZmienneMotywu[0]
|
|
||||||
M_tytultlo = ZmienneMotywu[1]
|
|
||||||
M_tytultext = ZmienneMotywu[2]
|
|
||||||
M_text = ZmienneMotywu[3]
|
|
||||||
M_przycisktlo = ZmienneMotywu[4]
|
|
||||||
M_przycisktext = ZmienneMotywu[5]
|
|
||||||
M_entrytlo = ZmienneMotywu[6]
|
|
||||||
M_framewielkosc = ZmienneMotywu[7]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Main(TK.Tk):
|
|
||||||
def __init__(self):
|
|
||||||
# Ustawienia okna
|
|
||||||
TK.Tk.__init__(self)
|
|
||||||
self.title(Nazwa + " " + Wersja)
|
|
||||||
self.resizable(width = False, height = False)
|
|
||||||
self.configure(bg = M_tlo)
|
|
||||||
|
|
||||||
|
|
||||||
# Tytuł
|
|
||||||
Tytul = TK.Label(self)
|
|
||||||
Tytul.config(text = Nazwa)
|
|
||||||
Tytul.config(width = 41)
|
|
||||||
Tytul.config(bg = M_tytultlo)
|
|
||||||
Tytul.config(fg = M_tytultext)
|
|
||||||
Tytul.config(font = ('Segoe UI Semilight', 30))
|
|
||||||
Tytul.grid(row = 0)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame1 - Pliki z danymi
|
|
||||||
Ramka1 = TK.LabelFrame(self)
|
|
||||||
Ramka1.config(text=' Pliki tekstowe zawierające dane (wymagany przynajmniej jeden) ')
|
|
||||||
Ramka1.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka1.config(bg = M_tlo)
|
|
||||||
Ramka1.config(fg = M_text)
|
|
||||||
Ramka1.grid(row = 1)
|
|
||||||
|
|
||||||
|
|
||||||
# Ścieżka pliku txt nr 1
|
|
||||||
wiersz = 1
|
|
||||||
text1 = TK.StringVar()
|
|
||||||
|
|
||||||
Pole1Label = TK.Label(Ramka1)
|
|
||||||
Pole1Label.config(text = 'Plik z danymi (1)')
|
|
||||||
Pole1Label.config(width = SzerokoscOpisu)
|
|
||||||
Pole1Label.config(bg = M_tlo)
|
|
||||||
Pole1Label.config(fg = M_text)
|
|
||||||
Pole1Label.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
Pole1 = TK.Entry(Ramka1)
|
|
||||||
Pole1.config(textvariable = text1)
|
|
||||||
Pole1.config(width = SzerokoscPola)
|
|
||||||
Pole1.config(bg = M_entrytlo)
|
|
||||||
Pole1.config(fg = M_text)
|
|
||||||
Pole1.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def Pole1BrowseDialog():
|
|
||||||
Pole1Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
|
||||||
Pole1.delete(0, 'end')
|
|
||||||
Pole1.insert(0, Pole1Browse.filename)
|
|
||||||
|
|
||||||
Pole1Browse = TK.Button(Ramka1)
|
|
||||||
Pole1Browse.config(text = '...')
|
|
||||||
Pole1Browse.config(command = Pole1BrowseDialog)
|
|
||||||
Pole1Browse.config(bg = M_przycisktlo)
|
|
||||||
Pole1Browse.config(fg = M_przycisktext)
|
|
||||||
Pole1Browse.config(relief = 'flat')
|
|
||||||
Pole1Browse.config(activebackground = M_przycisktlo)
|
|
||||||
Pole1Browse.grid(row = wiersz, column = 2, padx=5, pady=3)
|
|
||||||
|
|
||||||
|
|
||||||
# Ścieżka pliku txt nr 2
|
|
||||||
wiersz = 2
|
|
||||||
text2 = TK.StringVar()
|
|
||||||
|
|
||||||
Pole2Label = TK.Label(Ramka1)
|
|
||||||
Pole2Label.config(text = 'Plik z danymi (2)')
|
|
||||||
Pole2Label.config(width = SzerokoscOpisu)
|
|
||||||
Pole2Label.config(bg = M_tlo)
|
|
||||||
Pole2Label.config(fg = M_text)
|
|
||||||
Pole2Label.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
Pole2 = TK.Entry(Ramka1)
|
|
||||||
Pole2.config(textvariable = text2)
|
|
||||||
Pole2.config(width = SzerokoscPola)
|
|
||||||
Pole2.config(bg = M_entrytlo)
|
|
||||||
Pole2.config(fg = M_text)
|
|
||||||
Pole2.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def Pole2BrowseDialog():
|
|
||||||
Pole2Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
|
||||||
Pole2.delete(0, 'end')
|
|
||||||
Pole2.insert(0, Pole2Browse.filename)
|
|
||||||
|
|
||||||
Pole2Browse = TK.Button(Ramka1)
|
|
||||||
Pole2Browse.config(text = '...')
|
|
||||||
Pole2Browse.config(command = Pole2BrowseDialog)
|
|
||||||
Pole2Browse.config(bg = M_przycisktlo)
|
|
||||||
Pole2Browse.config(fg = M_przycisktext)
|
|
||||||
Pole2Browse.config(relief = 'flat')
|
|
||||||
Pole2Browse.config(activebackground = M_przycisktlo)
|
|
||||||
Pole2Browse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
# Ścieżka pliku txt nr 3
|
|
||||||
wiersz = 3
|
|
||||||
text3 = TK.StringVar()
|
|
||||||
|
|
||||||
Pole3Label = TK.Label(Ramka1)
|
|
||||||
Pole3Label.config(text = 'Plik z danymi (3)')
|
|
||||||
Pole3Label.config(width = SzerokoscOpisu)
|
|
||||||
Pole3Label.config(bg = M_tlo)
|
|
||||||
Pole3Label.config(fg = M_text)
|
|
||||||
Pole3Label.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
Pole3 = TK.Entry(Ramka1)
|
|
||||||
Pole3.config(textvariable = text3)
|
|
||||||
Pole3.config(width = SzerokoscPola)
|
|
||||||
Pole3.config(bg = M_entrytlo)
|
|
||||||
Pole3.config(fg = M_text)
|
|
||||||
Pole3.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def Pole3BrowseDialog():
|
|
||||||
Pole3Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
|
||||||
Pole3.delete(0, 'end')
|
|
||||||
Pole3.insert(0, Pole3Browse.filename)
|
|
||||||
|
|
||||||
Pole3Browse = TK.Button(Ramka1)
|
|
||||||
Pole3Browse.config(text = '...')
|
|
||||||
Pole3Browse.config(command = Pole3BrowseDialog)
|
|
||||||
Pole3Browse.config(bg = M_przycisktlo)
|
|
||||||
Pole3Browse.config(fg = M_przycisktext)
|
|
||||||
Pole3Browse.config(relief = 'flat')
|
|
||||||
Pole3Browse.config(activebackground = M_przycisktlo)
|
|
||||||
Pole3Browse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame2 - Dołącz pliki .csv
|
|
||||||
Ramka2 = TK.LabelFrame(self)
|
|
||||||
Ramka2.config(text = ' Dołącz pliki .csv (opcjonalne) ')
|
|
||||||
Ramka2.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka2.config(bg = M_tlo)
|
|
||||||
Ramka2.config(fg = M_text)
|
|
||||||
Ramka2.grid(row = 2)
|
|
||||||
|
|
||||||
|
|
||||||
# Sciezka do konta.csv
|
|
||||||
wiersz = 1
|
|
||||||
textKonta = TK.StringVar()
|
|
||||||
|
|
||||||
PoleKontaLabel = TK.Label(Ramka2)
|
|
||||||
PoleKontaLabel.config(text = 'Ściezka do pliku .csv dla poczty')
|
|
||||||
PoleKontaLabel.config(width = SzerokoscOpisu2)
|
|
||||||
PoleKontaLabel.config(bg = M_tlo)
|
|
||||||
PoleKontaLabel.config(fg = M_text)
|
|
||||||
PoleKontaLabel.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
PoleKonta = TK.Entry(Ramka2)
|
|
||||||
PoleKonta.config(textvariable = textKonta)
|
|
||||||
PoleKonta.config(width = SzerokoscPola2)
|
|
||||||
PoleKonta.config(bg = M_entrytlo)
|
|
||||||
PoleKonta.config(fg = M_text)
|
|
||||||
PoleKonta.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def PoleKontaBrowseDialog():
|
|
||||||
PoleKontaBrowse.filename = TKfld.askopenfilename(initialdir="C:/", title="Wybierz plik .csv dla poczty", filetypes=(("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
|
||||||
PoleKonta.delete(0, 'end')
|
|
||||||
PoleKonta.insert(0, PoleKontaBrowse.filename)
|
|
||||||
|
|
||||||
PoleKontaBrowse = TK.Button(Ramka2)
|
|
||||||
PoleKontaBrowse.config(text = '...')
|
|
||||||
PoleKontaBrowse.config(command = PoleKontaBrowseDialog)
|
|
||||||
PoleKontaBrowse.config(bg = M_przycisktlo)
|
|
||||||
PoleKontaBrowse.config(fg = M_przycisktext)
|
|
||||||
PoleKontaBrowse.config(relief = 'flat')
|
|
||||||
PoleKontaBrowse.config(activebackground = M_przycisktlo)
|
|
||||||
PoleKontaBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Sciezka do office.csv
|
|
||||||
wiersz = 2
|
|
||||||
textOffice = TK.StringVar()
|
|
||||||
|
|
||||||
PoleOfficeLabel = TK.Label(Ramka2)
|
|
||||||
PoleOfficeLabel.config(text = 'Ściezka do pliku .csv dla office365')
|
|
||||||
PoleOfficeLabel.config(width = SzerokoscOpisu2)
|
|
||||||
PoleOfficeLabel.config(bg = M_tlo)
|
|
||||||
PoleOfficeLabel.config(fg = M_text)
|
|
||||||
PoleOfficeLabel.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
PoleOffice = TK.Entry(Ramka2)
|
|
||||||
PoleOffice.config(textvariable = textOffice)
|
|
||||||
PoleOffice.config(width = SzerokoscPola2)
|
|
||||||
PoleOffice.config(bg = M_entrytlo)
|
|
||||||
PoleOffice.config(fg = M_text)
|
|
||||||
PoleOffice.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def PoleOfficeBrowseDialog():
|
|
||||||
PoleOfficeBrowse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik .csv dla poczty", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
|
||||||
PoleOffice.delete(0, 'end')
|
|
||||||
PoleOffice.insert(0, PoleOfficeBrowse.filename)
|
|
||||||
|
|
||||||
PoleOfficeBrowse = TK.Button(Ramka2)
|
|
||||||
PoleOfficeBrowse.config(text = '...')
|
|
||||||
PoleOfficeBrowse.config(command = PoleKontaBrowseDialog)
|
|
||||||
PoleOfficeBrowse.config(bg = M_przycisktlo)
|
|
||||||
PoleOfficeBrowse.config(fg = M_przycisktext)
|
|
||||||
PoleOfficeBrowse.config(relief = 'flat')
|
|
||||||
PoleOfficeBrowse.config(activebackground = M_przycisktlo)
|
|
||||||
PoleOfficeBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame3 - Eksport
|
|
||||||
Ramka3 = TK.LabelFrame(self)
|
|
||||||
Ramka3.config(text=' Eksport ')
|
|
||||||
Ramka3.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka3.config(bg = M_tlo)
|
|
||||||
Ramka3.config(fg = M_text)
|
|
||||||
Ramka3.grid(row = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Sciezka do pliku poczty
|
|
||||||
wiersz = 1
|
|
||||||
textKontaEksport = TK.StringVar()
|
|
||||||
|
|
||||||
PoleKontaEksportLabel = TK.Label(Ramka3)
|
|
||||||
PoleKontaEksportLabel.config(text = 'Poczta')
|
|
||||||
PoleKontaEksportLabel.config(width = SzerokoscOpisu3)
|
|
||||||
PoleKontaEksportLabel.config(bg = M_tlo)
|
|
||||||
PoleKontaEksportLabel.config(fg = M_text)
|
|
||||||
PoleKontaEksportLabel.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
PoleKontaEksport = TK.Entry(Ramka3)
|
|
||||||
PoleKontaEksport.config(textvariable = textKontaEksport)
|
|
||||||
PoleKontaEksport.config(width = SzerokoscPola3)
|
|
||||||
PoleKontaEksport.config(bg = M_entrytlo)
|
|
||||||
PoleKontaEksport.config(fg = M_text)
|
|
||||||
PoleKontaEksport.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def PoleKontaEksportBrowseDialog():
|
|
||||||
PoleKontaEksportBrowse.filename = TKfld.saveasfilename(initialdir = "C:/", title = "Zapisz", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
|
||||||
PoleKontaEksport.delete(0, 'end')
|
|
||||||
PoleKontaEksport.insert(0, PoleKontaEksportBrowse.filename)
|
|
||||||
|
|
||||||
PoleKontaEksportBrowse = TK.Button(Ramka3)
|
|
||||||
PoleKontaEksportBrowse.config(text = '...')
|
|
||||||
PoleKontaEksportBrowse.config(command = PoleKontaEksportBrowseDialog)
|
|
||||||
PoleKontaEksportBrowse.config(bg = M_przycisktlo)
|
|
||||||
PoleKontaEksportBrowse.config(fg = M_przycisktext)
|
|
||||||
PoleKontaEksportBrowse.config(relief = 'flat')
|
|
||||||
PoleKontaEksportBrowse.config(activebackground = M_przycisktlo)
|
|
||||||
PoleKontaEksportBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
# Sciezka do pliku office
|
|
||||||
wiersz = 2
|
|
||||||
textOfficeEksport = TK.StringVar()
|
|
||||||
|
|
||||||
PoleOfficeEksportLabel = TK.Label(Ramka3)
|
|
||||||
PoleOfficeEksportLabel.config(text = 'Office')
|
|
||||||
PoleOfficeEksportLabel.config(width = SzerokoscOpisu3)
|
|
||||||
PoleOfficeEksportLabel.config(bg = M_tlo)
|
|
||||||
PoleOfficeEksportLabel.config(fg = M_text)
|
|
||||||
PoleOfficeEksportLabel.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
PoleOfficeEksport = TK.Entry(Ramka3)
|
|
||||||
PoleOfficeEksport.config(textvariable = textOfficeEksport)
|
|
||||||
PoleOfficeEksport.config(width = SzerokoscPola3)
|
|
||||||
PoleOfficeEksport.config(bg = M_entrytlo)
|
|
||||||
PoleOfficeEksport.config(fg = M_text)
|
|
||||||
PoleOfficeEksport.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def PoleOfficeEksportBrowseDialog():
|
|
||||||
PoleOfficeEksportBrowse.filename = TKfld.saveasfilename(initialdir = "C:/", title = "Zapisz", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
|
||||||
PoleOfficeEksport.delete(0, 'end')
|
|
||||||
PoleOfficeEksport.insert(0, PoleOfficeEksportBrowse.filename)
|
|
||||||
|
|
||||||
PoleOfficeEksportBrowse = TK.Button(Ramka3)
|
|
||||||
PoleOfficeEksportBrowse.config(text = '...')
|
|
||||||
PoleOfficeEksportBrowse.config(command = PoleOfficeEksportBrowseDialog)
|
|
||||||
PoleOfficeEksportBrowse.config(bg = M_przycisktlo)
|
|
||||||
PoleOfficeEksportBrowse.config(fg = M_przycisktext)
|
|
||||||
PoleOfficeEksportBrowse.config(relief = 'flat')
|
|
||||||
PoleOfficeEksportBrowse.config(activebackground = M_przycisktlo)
|
|
||||||
PoleOfficeEksportBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
# Przycisk START
|
|
||||||
def PathPreprocess():
|
|
||||||
pass
|
|
||||||
|
|
||||||
PrzyciskSTART = TK.Button(self)
|
|
||||||
PrzyciskSTART.config(text = 'START')
|
|
||||||
PrzyciskSTART.config(command = PathPreprocess)
|
|
||||||
PrzyciskSTART.config(width = 50)
|
|
||||||
PrzyciskSTART.config(bg = M_przycisktlo)
|
|
||||||
PrzyciskSTART.config(fg = M_przycisktext)
|
|
||||||
PrzyciskSTART.config(relief = 'flat')
|
|
||||||
PrzyciskSTART.config(activebackground = M_przycisktlo)
|
|
||||||
PrzyciskSTART.grid(row = 4, pady = 15)
|
|
||||||
|
|
||||||
# Pasek dolny
|
|
||||||
PasekDolny = TK.LabelFrame(self)
|
|
||||||
PasekDolny.config(bd = 0)
|
|
||||||
PasekDolny.config(bg = M_tytultlo)
|
|
||||||
PasekDolny.config(fg = M_tytultext)
|
|
||||||
PasekDolny.grid(row=5)
|
|
||||||
|
|
||||||
InfoLabel = TK.Label(PasekDolny)
|
|
||||||
InfoLabel.config(text = Nazwa + ' ' + Wersja + ' | © ' + Autorzy + ' ' + LataPracy + ' dla ZSP Sobolew')
|
|
||||||
InfoLabel.config(width = 107)
|
|
||||||
InfoLabel.config(justify = 'left')
|
|
||||||
InfoLabel.config(anchor='w')
|
|
||||||
InfoLabel.config(bg = M_tytultlo)
|
|
||||||
InfoLabel.config(fg = M_tytultext)
|
|
||||||
InfoLabel.grid(row = 0, column = 0)
|
|
||||||
|
|
||||||
def InfoOpen():
|
|
||||||
try:
|
|
||||||
x = open('.\instruction.txt')
|
|
||||||
except FileNotFoundError:
|
|
||||||
MDdlg.err(4)
|
|
||||||
else:
|
|
||||||
OS.system("notepad .\instruction.txt")
|
|
||||||
|
|
||||||
PrzyciskINFO = TK.Button(PasekDolny)
|
|
||||||
PrzyciskINFO.config(text = 'Instrukcja')
|
|
||||||
PrzyciskINFO.config(command = InfoOpen)
|
|
||||||
PrzyciskINFO.config(bg = M_przycisktlo)
|
|
||||||
PrzyciskINFO.config(fg = M_przycisktext)
|
|
||||||
PrzyciskINFO.config(relief = 'flat')
|
|
||||||
PrzyciskINFO.config(activebackground = M_przycisktlo)
|
|
||||||
PrzyciskINFO.grid(row = 0, column = 1, padx = 5, pady = 5)
|
|
||||||
|
|
||||||
PrzyciskUSTAWIENIA = TK.Button(PasekDolny)
|
|
||||||
PrzyciskUSTAWIENIA.config(text = 'Ustawienia')
|
|
||||||
PrzyciskUSTAWIENIA.config(command = self.settingsButton)
|
|
||||||
PrzyciskUSTAWIENIA.config(bg = M_przycisktlo)
|
|
||||||
PrzyciskUSTAWIENIA.config(fg = M_przycisktext)
|
|
||||||
PrzyciskUSTAWIENIA.config(relief = 'flat')
|
|
||||||
PrzyciskUSTAWIENIA.grid(row = 0, column = 2, padx = 5, pady = 5)
|
|
||||||
|
|
||||||
def settingsButton(self):
|
|
||||||
self.child = Settings(self)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.mainloop()
|
|
||||||
|
|
||||||
class Settings(TK.Toplevel):
|
|
||||||
def __init__(self, parent):
|
|
||||||
# Ustawienia okna
|
|
||||||
TK.Toplevel.__init__(self, parent)
|
|
||||||
self.title('Ustawienia')
|
|
||||||
self.resizable(width = False, height = False)
|
|
||||||
self.configure(bg = M_tlo)
|
|
||||||
|
|
||||||
liczbawierszy = 0
|
|
||||||
|
|
||||||
# Tytuł
|
|
||||||
Tytul = TK.Label(self)
|
|
||||||
Tytul.config(text = 'Ustawienia')
|
|
||||||
Tytul.config(width = 40)
|
|
||||||
Tytul.config(bg = M_tytultlo)
|
|
||||||
Tytul.config(fg = M_tytultext)
|
|
||||||
Tytul.config(font = ('Segoe UI Semilight', 20))
|
|
||||||
Tytul.grid(row = 0)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame1 - Motyw
|
|
||||||
liczbawierszy += 1
|
|
||||||
Ramka1 = TK.LabelFrame(self)
|
|
||||||
Ramka1.config(text = ' Motyw programu ')
|
|
||||||
Ramka1.config(bg = M_tlo)
|
|
||||||
Ramka1.config(fg = M_text)
|
|
||||||
Ramka1.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka1.grid(row = 1, pady = 5)
|
|
||||||
|
|
||||||
|
|
||||||
if int(MDlcg.read()[0]) == 1:
|
|
||||||
Motyw_list_set = 1
|
|
||||||
else:
|
|
||||||
Motyw_list_set = 0
|
|
||||||
Motyw_list = TKttk.Combobox(Ramka1)
|
|
||||||
Motyw_list.config(textvariable = TK.StringVar())
|
|
||||||
Motyw_list.config(state = 'readonly')
|
|
||||||
Motyw_list.config(width = 93)
|
|
||||||
Motyw_list.grid(row = 0, pady = 5, padx = 5)
|
|
||||||
Motyw_list['values'] = ('Jasny', 'Ciemny')
|
|
||||||
Motyw_list.current(Motyw_list_set)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame2 - Kodowanie
|
|
||||||
liczbawierszy += 1
|
|
||||||
Ramka2 = TK.LabelFrame(self)
|
|
||||||
Ramka2.config(text = ' Kodowanie wyjściowe ')
|
|
||||||
Ramka2.config(bg = M_tlo)
|
|
||||||
Ramka2.config(fg = M_text)
|
|
||||||
Ramka2.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka2.grid(row = 2, pady = 5)
|
|
||||||
|
|
||||||
Code_list = TKttk.Combobox(Ramka2)
|
|
||||||
Code_list.config(textvariable = TK.StringVar())
|
|
||||||
Code_list.config(state = 'readonly')
|
|
||||||
Code_list.config(width = 93)
|
|
||||||
Code_list.grid(row = 0, pady = 5, padx = 5)
|
|
||||||
Code_list['values'] = ('utf-8')
|
|
||||||
Code_list.set(MDlcg.read()[1])
|
|
||||||
|
|
||||||
|
|
||||||
# Frame3 - Format plików wejściowych
|
|
||||||
SzerokoscPolaWej = 35
|
|
||||||
WysokoscPolaWej = 8
|
|
||||||
|
|
||||||
liczbawierszy += 1
|
|
||||||
Ramka3 = TK.LabelFrame(self)
|
|
||||||
Ramka3.config(text = ' Format plików wejściowych ')
|
|
||||||
Ramka3.config(bg = M_tlo)
|
|
||||||
Ramka3.config(fg = M_text)
|
|
||||||
Ramka3.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka3.grid(row = 3, pady = 5)
|
|
||||||
|
|
||||||
UczniowieLabel = TK.Label(Ramka3)
|
|
||||||
UczniowieLabel.config(text = 'Uczniowie')
|
|
||||||
UczniowieLabel.config(justify = 'center')
|
|
||||||
UczniowieLabel.config(bg = M_tlo)
|
|
||||||
UczniowieLabel.config(fg = M_text)
|
|
||||||
UczniowieLabel.grid(row = 0, column = 0)
|
|
||||||
|
|
||||||
uczfmt = MDlfm.read()[0]
|
|
||||||
uczfmt = '\n'.join(uczfmt)
|
|
||||||
UczniowieFormat = TK.Text(Ramka3)
|
|
||||||
UczniowieFormat.config(width = SzerokoscPolaWej)
|
|
||||||
UczniowieFormat.config(height = WysokoscPolaWej)
|
|
||||||
UczniowieFormat.config(bg = M_entrytlo)
|
|
||||||
UczniowieFormat.config(fg = M_text)
|
|
||||||
UczniowieFormat.grid(row = 1, column = 0, padx = 5, pady = 5)
|
|
||||||
UczniowieFormat.insert(TK.END, uczfmt)
|
|
||||||
|
|
||||||
NauczycieleLabel = TK.Label(Ramka3)
|
|
||||||
NauczycieleLabel.config(text = 'Nauczyciele')
|
|
||||||
NauczycieleLabel.config(justify = 'center')
|
|
||||||
NauczycieleLabel.config(bg = M_tlo)
|
|
||||||
NauczycieleLabel.config(fg = M_text)
|
|
||||||
NauczycieleLabel.grid(row = 0, column = 1)
|
|
||||||
|
|
||||||
nczfmt = MDlfm.read()[1]
|
|
||||||
nczfmt = '\n'.join(nczfmt)
|
|
||||||
NauczycieleFormat = TK.Text(Ramka3)
|
|
||||||
NauczycieleFormat.config(width = SzerokoscPolaWej)
|
|
||||||
NauczycieleFormat.config(height = WysokoscPolaWej)
|
|
||||||
NauczycieleFormat.config(bg = M_entrytlo)
|
|
||||||
NauczycieleFormat.config(fg = M_text)
|
|
||||||
NauczycieleFormat.grid(row = 1, column = 1, padx = 5, pady = 5)
|
|
||||||
NauczycieleFormat.insert(TK.END, nczfmt)
|
|
||||||
|
|
||||||
OpisFmt = TK.LabelFrame(Ramka3)
|
|
||||||
OpisFmt.config(bg=M_tlo)
|
|
||||||
OpisFmt.config(fg=M_text)
|
|
||||||
OpisFmt.config(borderwidth=0)
|
|
||||||
OpisFmt.grid(row=2, pady=5, columnspan=4)
|
|
||||||
|
|
||||||
Opis1 = TK.Label(OpisFmt)
|
|
||||||
Opis1.config(text='Dozwolone znaki:')
|
|
||||||
Opis1.config(bg=M_tlo)
|
|
||||||
Opis1.config(fg=M_text)
|
|
||||||
Opis1.grid(row=0, columnspan=7)
|
|
||||||
|
|
||||||
Opis2_1 = TK.Label(OpisFmt)
|
|
||||||
Opis2_1.config(text='K - Klasa')
|
|
||||||
Opis2_1.config(bg=M_tlo)
|
|
||||||
Opis2_1.config(fg=M_text)
|
|
||||||
Opis2_1.grid(row=1, column=0)
|
|
||||||
|
|
||||||
Opis2_2 = TK.Label(OpisFmt)
|
|
||||||
Opis2_2.config(text='O - Oddzial')
|
|
||||||
Opis2_2.config(bg=M_tlo)
|
|
||||||
Opis2_2.config(fg=M_text)
|
|
||||||
Opis2_2.grid(row=1, column=1)
|
|
||||||
|
|
||||||
Opis2_3 = TK.Label(OpisFmt)
|
|
||||||
Opis2_3.config(text='N - Nazwisko')
|
|
||||||
Opis2_3.config(bg=M_tlo)
|
|
||||||
Opis2_3.config(fg=M_text)
|
|
||||||
Opis2_3.grid(row=1, column=2)
|
|
||||||
|
|
||||||
Opis2_4 = TK.Label(OpisFmt)
|
|
||||||
Opis2_4.config(text='I - Imię')
|
|
||||||
Opis2_4.config(bg=M_tlo)
|
|
||||||
Opis2_4.config(fg=M_text)
|
|
||||||
Opis2_4.grid(row=1, column=3)
|
|
||||||
|
|
||||||
Opis2_5 = TK.Label(OpisFmt)
|
|
||||||
Opis2_5.config(text='L - Login')
|
|
||||||
Opis2_5.config(bg=M_tlo)
|
|
||||||
Opis2_5.config(fg=M_text)
|
|
||||||
Opis2_5.grid(row=1, column=4)
|
|
||||||
|
|
||||||
Opis2_6 = TK.Label(OpisFmt)
|
|
||||||
Opis2_6.config(text = 'X - Dane nieznaczące')
|
|
||||||
Opis2_6.config(bg = M_tlo)
|
|
||||||
Opis2_6.config(fg = M_text)
|
|
||||||
Opis2_6.grid(row = 1, column = 5)
|
|
||||||
|
|
||||||
Opis2_6 = TK.Label(OpisFmt)
|
|
||||||
Opis2_6.config(text='Q - Pusta linia')
|
|
||||||
Opis2_6.config(bg=M_tlo)
|
|
||||||
Opis2_6.config(fg=M_text)
|
|
||||||
Opis2_6.grid(row=1, column=6)
|
|
||||||
|
|
||||||
Opis3 = TK.Label(OpisFmt)
|
|
||||||
Opis3.config(text='Pozostałe znaki oprócz cyfr i pozostałych liter')
|
|
||||||
Opis3.config(bg=M_tlo)
|
|
||||||
Opis3.config(fg=M_text)
|
|
||||||
Opis3.grid(row=2, columnspan = 7)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame4 - Stałe
|
|
||||||
liczbawierszy += 1
|
|
||||||
Ramka4 = TK.LabelFrame(self)
|
|
||||||
Ramka4.config(text = ' Ustawienia generowania ')
|
|
||||||
Ramka4.config(bg = M_tlo)
|
|
||||||
Ramka4.config(fg = M_text)
|
|
||||||
Ramka4.config(borderwidth = M_framewielkosc)
|
|
||||||
Ramka4.grid(row = 4, pady = 5)
|
|
||||||
|
|
||||||
|
|
||||||
# Długość liceum i branżowej
|
|
||||||
RamkaDl = TK.LabelFrame(Ramka4)
|
|
||||||
RamkaDl.config(bg = M_tlo)
|
|
||||||
RamkaDl.config(fg = M_text)
|
|
||||||
RamkaDl.config(borderwidth = 0)
|
|
||||||
RamkaDl.grid(row = 0, pady = 5, columnspan = 2)
|
|
||||||
|
|
||||||
DlLicLabel = TK.Label(RamkaDl)
|
|
||||||
DlLicLabel.config(text = 'Lata nauki w liceum')
|
|
||||||
DlLicLabel.config(width = SzerokoscOpisu + 5)
|
|
||||||
DlLicLabel.config(bg = M_tlo)
|
|
||||||
DlLicLabel.config(fg = M_text)
|
|
||||||
DlLicLabel.grid(row = 0, column = 0)
|
|
||||||
|
|
||||||
DlLicValue = TK.IntVar()
|
|
||||||
DlLicPole = TK.Spinbox(RamkaDl)
|
|
||||||
DlLicPole.config(textvariable = DlLicValue)
|
|
||||||
DlLicPole.config(from_ = 1, to = 10)
|
|
||||||
DlLicPole.config(width = 18)
|
|
||||||
DlLicPole.config(bg = M_entrytlo)
|
|
||||||
DlLicPole.config(fg = M_text)
|
|
||||||
DlLicPole.grid(row = 0, column = 1, padx = 5, pady = 5)
|
|
||||||
DlLicPole.delete(0, 'end')
|
|
||||||
DlLicPole.insert(0, int(MDlcg.read()[5]))
|
|
||||||
|
|
||||||
DlBrLabel = TK.Label(RamkaDl)
|
|
||||||
DlBrLabel.config(text='Lata nauki w branżowej')
|
|
||||||
DlBrLabel.config(width = SzerokoscOpisu + 5)
|
|
||||||
DlBrLabel.config(bg = M_tlo)
|
|
||||||
DlBrLabel.config(fg = M_text)
|
|
||||||
DlBrLabel.grid(row = 0, column = 2)
|
|
||||||
|
|
||||||
DlBrValue = TK.IntVar()
|
|
||||||
DlBrPole = TK.Spinbox(RamkaDl)
|
|
||||||
DlBrPole.config(textvariable = DlBrValue)
|
|
||||||
DlBrPole.config(from_ = 1, to=10)
|
|
||||||
DlBrPole.config(width = 18)
|
|
||||||
DlBrPole.config(bg = M_entrytlo)
|
|
||||||
DlBrPole.config(fg = M_text)
|
|
||||||
DlBrPole.grid(row = 0, column = 3, padx = 5, pady = 5)
|
|
||||||
DlBrPole.delete(0, 'end')
|
|
||||||
DlBrPole.insert(0, int(MDlcg.read()[6]))
|
|
||||||
|
|
||||||
|
|
||||||
# Domena
|
|
||||||
|
|
||||||
DomenaLabel = TK.Label(Ramka4)
|
|
||||||
DomenaLabel.config(text = 'Domena')
|
|
||||||
DomenaLabel.config(width = SzerokoscOpisu + 5)
|
|
||||||
DomenaLabel.config(bg = M_tlo)
|
|
||||||
DomenaLabel.config(fg = M_text)
|
|
||||||
DomenaLabel.grid(row = 2, column = 0)
|
|
||||||
|
|
||||||
text1 = TK.StringVar()
|
|
||||||
PoleDomena = TK.Entry(Ramka4)
|
|
||||||
PoleDomena.config(textvariable = text1)
|
|
||||||
PoleDomena.config(width = 69)
|
|
||||||
PoleDomena.config(bg = M_entrytlo)
|
|
||||||
PoleDomena.config(fg = M_text)
|
|
||||||
PoleDomena.grid(row = 2, column = 1, padx = 5, pady = 5)
|
|
||||||
PoleDomena.insert(0, MDlcg.read()[2])
|
|
||||||
|
|
||||||
|
|
||||||
# Quota
|
|
||||||
|
|
||||||
QuotaLabel = TK.Label(Ramka4)
|
|
||||||
QuotaLabel.config(text = 'Quota (MB)')
|
|
||||||
QuotaLabel.config(width = SzerokoscOpisu)
|
|
||||||
QuotaLabel.config(bg = M_tlo)
|
|
||||||
QuotaLabel.config(fg = M_text)
|
|
||||||
QuotaLabel.grid(row = 3, column = 0)
|
|
||||||
|
|
||||||
value2 = TK.IntVar()
|
|
||||||
PoleQuota = TK.Spinbox(Ramka4)
|
|
||||||
PoleQuota.config(textvariable = value2)
|
|
||||||
PoleQuota.config(from_ = 1, to = 100000)
|
|
||||||
PoleQuota.config(width = 67)
|
|
||||||
PoleQuota.config(bg = M_entrytlo)
|
|
||||||
PoleQuota.config(fg = M_text)
|
|
||||||
PoleQuota.grid(row = 3, column = 1, padx = 5, pady = 5)
|
|
||||||
PoleQuota.delete(0, 'end')
|
|
||||||
PoleQuota.insert(0, int(MDlcg.read()[3]))
|
|
||||||
|
|
||||||
|
|
||||||
# Kraj
|
|
||||||
|
|
||||||
KrajLabel = TK.Label(Ramka4)
|
|
||||||
KrajLabel.config(text = 'Kraj')
|
|
||||||
KrajLabel.config(width = SzerokoscOpisu + 5)
|
|
||||||
KrajLabel.config(bg = M_tlo)
|
|
||||||
KrajLabel.config(fg = M_text)
|
|
||||||
KrajLabel.grid(row = 4, column = 0)
|
|
||||||
|
|
||||||
KrajValue = TK.StringVar()
|
|
||||||
KrajPole = TK.Entry(Ramka4)
|
|
||||||
KrajPole.config(textvariable = KrajValue)
|
|
||||||
KrajPole.config(width = 69)
|
|
||||||
KrajPole.config(bg = M_entrytlo)
|
|
||||||
KrajPole.config(fg = M_text)
|
|
||||||
KrajPole.grid(row = 4, column = 1, padx = 5, pady = 5)
|
|
||||||
KrajPole.insert(0, MDlcg.read()[4])
|
|
||||||
|
|
||||||
|
|
||||||
# Przycisk ZAPISZ
|
|
||||||
def save():
|
|
||||||
if MDdlg.ask(1):
|
|
||||||
motyw = Motyw_list.get()
|
|
||||||
if motyw == 'Jasny':
|
|
||||||
motyw = '0'
|
|
||||||
else:
|
|
||||||
motyw = '1'
|
|
||||||
kodowanie = Code_list.get()
|
|
||||||
uczniowiefmt = UczniowieFormat.get('1.0', 'end')
|
|
||||||
nauczycielefmt = NauczycieleFormat.get('1.0', 'end')
|
|
||||||
liclata = DlLicPole.get()
|
|
||||||
brlata = DlBrPole.get()
|
|
||||||
domena = PoleDomena.get()
|
|
||||||
quota = PoleQuota.get()
|
|
||||||
kraj = KrajPole.get()
|
|
||||||
SettingsToSave = [motyw, kodowanie, domena, quota, kraj, liclata, brlata]
|
|
||||||
FormatToSave = [uczniowiefmt, nauczycielefmt]
|
|
||||||
if MDlfm.edit(FormatToSave):
|
|
||||||
MDlcg.edit(SettingsToSave)
|
|
||||||
MDdlg.inf(0)
|
|
||||||
self.destroy()
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
PrzyciskZAPISZ = TK.Button(self)
|
|
||||||
PrzyciskZAPISZ.config(text = 'ZAPISZ')
|
|
||||||
PrzyciskZAPISZ.config(command = save)
|
|
||||||
PrzyciskZAPISZ.config(width = 50)
|
|
||||||
PrzyciskZAPISZ.config(bg = M_przycisktlo)
|
|
||||||
PrzyciskZAPISZ.config(fg = M_przycisktext)
|
|
||||||
PrzyciskZAPISZ.config(relief = 'flat')
|
|
||||||
PrzyciskZAPISZ.config(activebackground = M_przycisktlo)
|
|
||||||
PrzyciskZAPISZ.grid(row = liczbawierszy + 1, pady = 15)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OknoGlowne = Main()
|
|
||||||
OknoGlowne.run()
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#TODO
|
|
||||||
import dataprocess as MDdtp
|
|
||||||
import load_config as MDlcg
|
|
||||||
import dialog as MDdlg
|
|
||||||
import codecs as CD
|
|
||||||
|
|
||||||
I002 = ['Operacja zakończona pomyślnie', False]
|
|
||||||
|
|
||||||
def do(KontenerDanych, sciezkaExport):
|
|
||||||
KontenerEmail = []
|
|
||||||
KontenerOffice = []
|
|
||||||
for osoba in KontenerDanych:
|
|
||||||
if osoba[-1]:
|
|
||||||
Klasa = osoba[0]
|
|
||||||
Imie = osoba[2]
|
|
||||||
Inicjaly = Imie[0]
|
|
||||||
Nazwisko = ''
|
|
||||||
NazwiskoDoEmaila = ''
|
|
||||||
for x in osoba[1]:
|
|
||||||
Nazwisko += x + ' '
|
|
||||||
NazwiskoDoEmaila += ('.' + x)
|
|
||||||
Inicjaly += x[0]
|
|
||||||
Nazwisko = Nazwisko[:-1]
|
|
||||||
ZnacznikKlasy = MDdtp.ctc(Klasa)
|
|
||||||
Login = osoba[3]
|
|
||||||
Adres = MDdtp.plr(Imie).lower() + MDdtp.plr(NazwiskoDoEmaila).lower() + ZnacznikKlasy + '@losobolew.pl'
|
|
||||||
Email = Adres + ',' + Login + ':' + MDdtp.plr(Inicjaly) + ',500'
|
|
||||||
Office = Adres + ',' + Imie + ',' + Nazwisko + ',' + Imie + ' ' + Nazwisko + ',uczeń,' + Klasa + ',,,,,,,,,Rzeczypospolita Polska'
|
|
||||||
KontenerEmail.append(Email)
|
|
||||||
KontenerOffice.append(Office)
|
|
||||||
else:
|
|
||||||
Imie = osoba[1]
|
|
||||||
Inicjaly = Imie[0]
|
|
||||||
Nazwisko = ''
|
|
||||||
NazwiskoDoEmaila = ''
|
|
||||||
for x in osoba[0]:
|
|
||||||
Nazwisko += x + ' '
|
|
||||||
NazwiskoDoEmaila += ('.' + x)
|
|
||||||
Inicjaly += x[0]
|
|
||||||
Nazwisko = Nazwisko[:-1]
|
|
||||||
Login = osoba[2]
|
|
||||||
Adres = MDdtp.plr(Imie).lower() + MDdtp.plr(NazwiskoDoEmaila).lower() + '@losobolew.pl'
|
|
||||||
Email = Adres + ',' + Login + ':' + MDdtp.plr(Inicjaly) + ',500'
|
|
||||||
Office = Adres + ',' + Imie + ',' + Nazwisko + ',' + Imie + ' ' + Nazwisko + ',nauczyciel,,,,,,,,,,Rzeczpospolita Polska'
|
|
||||||
KontenerEmail.append(Email)
|
|
||||||
KontenerOffice.append(Office)
|
|
||||||
sciezkaEmail = sciezkaExport + '/email.csv'
|
|
||||||
sciezkaOffice = sciezkaExport + '/office.csv'
|
|
||||||
with CD.open(sciezkaEmail, 'w', MDlcg.read()[1]) as plikEmail:
|
|
||||||
for x in KontenerEmail:
|
|
||||||
plikEmail.writelines(x + '\n')
|
|
||||||
plikEmail.close()
|
|
||||||
with CD.open(sciezkaOffice, 'w', MDlcg.read()[1]) as plikOffice:
|
|
||||||
for x in KontenerOffice:
|
|
||||||
plikOffice.writelines(x + '\n')
|
|
||||||
plikOffice.close()
|
|
||||||
MDdlg.Inf(I002)
|
|
||||||
782
generator.py
782
generator.py
@@ -1,12 +1,12 @@
|
|||||||
"""
|
"""
|
||||||
# GeneratorCSV
|
# Generator CSV
|
||||||
# Wersja 4.0 Experimental
|
# Wersja 4.0 Experimental
|
||||||
# by Mateusz Skoczek
|
# by Mateusz Skoczek
|
||||||
# luty 2019 - grudzień 2019
|
# luty 2019 - grudzień 2019
|
||||||
# dla ZSP Sobolew
|
# dla ZSP Sobolew
|
||||||
|
|
||||||
#
|
#
|
||||||
# Główny skrypt uruchamiający
|
# Główny plik programu
|
||||||
#
|
#
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -17,13 +17,779 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------- # Uruchomienie głównego modułu # ----------------------------------------- #
|
# -------------------------------------------- # Informacje o programie # -------------------------------------------- #
|
||||||
|
|
||||||
|
Nazwa = 'Generator CSV'
|
||||||
|
Wersja = '4.0 Experimental'
|
||||||
|
LataPracy = '2019'
|
||||||
|
Autorzy = 'Mateusz Skoczek'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------- # Import bibliotek zewnętrznych i modułów # ------------------------------------ #
|
||||||
|
|
||||||
|
# Biblioteki zewnętrzne
|
||||||
|
import os as OS
|
||||||
|
import sys as SS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Moduły składowe programu
|
||||||
|
try:
|
||||||
|
from modules import dialog as MDdlg
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nie znaleziono jednego z modułów programu (dialog.py). Nie można załadować programu')
|
||||||
|
print('Kod błędu: E00x0011')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
except Exception as exc:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.')
|
||||||
|
print('Treść błędu: ' + exc)
|
||||||
|
print('Kod błędu: E00x0010')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
fck = open("components/main.py")
|
from modules import load_config as MDlcg
|
||||||
except:
|
except ModuleNotFoundError:
|
||||||
print('Nie znaleziono głównego modułu programu (main.py)\nNie można załadować programu\nKod błędu: E00x0000')
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nie znaleziono jednego z modułów programu (load_config.py). Nie można załadować programu')
|
||||||
|
print('Kod błędu: E00x0021')
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
except Exception as exc:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nieznany błąd podczas ładowania jednego z modułów programu (load_config.py). Nie można załadować programu.')
|
||||||
|
print('Treść błędu: ' + exc)
|
||||||
|
print('Kod błędu: E00x0020')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
|
||||||
|
try:
|
||||||
|
from modules import load_format as MDlfm
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nie znaleziono jednego z modułów programu (load_format.py). Nie można załadować programu')
|
||||||
|
print('Kod błędu: E00x0031')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
except Exception as exc:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nieznany błąd podczas ładowania jednego z modułów programu (load_format.py). Nie można załadować programu.')
|
||||||
|
print('Treść błędu: ' + exc)
|
||||||
|
print('Kod błędu: E00x0030')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
# Biblioteki zewnętrzne interfejsu graficznego
|
||||||
|
import tkinter as TK
|
||||||
|
|
||||||
|
from tkinter import filedialog as TKfld
|
||||||
|
from tkinter import ttk as TKttk
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------- # Uruchomienie interfejsu graficznego # -------------------------------------- #
|
||||||
|
|
||||||
|
# Zmienne globalne środowiska graficznego
|
||||||
|
if int(MDlcg.read()[0]) == 1:
|
||||||
|
CiemnyMotyw = True
|
||||||
else:
|
else:
|
||||||
import os
|
CiemnyMotyw = False
|
||||||
os.system("components\main.py")
|
SzerokoscOpisu = 17
|
||||||
|
SzerokoscOpisu2 = 30
|
||||||
|
SzerokoscOpisu3 = 10
|
||||||
|
SzerokoscPola = 122
|
||||||
|
SzerokoscPola2 = 107
|
||||||
|
SzerokoscPola3 = 130
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Zmienne motywu
|
||||||
|
if CiemnyMotyw:
|
||||||
|
ZmienneMotywu = ['#1F1F1F', '#191919', '#B8B8B8', '#FFFFFF', '#404040', '#FFFFFF', '#1F1F1F', 1]
|
||||||
|
else:
|
||||||
|
ZmienneMotywu = ['#F0F0F0', '#D4D4D4', '#000000', '#000000', '#A6A6A6', '#000000', '#FFFFFF', 2]
|
||||||
|
|
||||||
|
M_tlo = ZmienneMotywu[0]
|
||||||
|
M_tytultlo = ZmienneMotywu[1]
|
||||||
|
M_tytultext = ZmienneMotywu[2]
|
||||||
|
M_text = ZmienneMotywu[3]
|
||||||
|
M_przycisktlo = ZmienneMotywu[4]
|
||||||
|
M_przycisktext = ZmienneMotywu[5]
|
||||||
|
M_entrytlo = ZmienneMotywu[6]
|
||||||
|
M_framewielkosc = ZmienneMotywu[7]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Okno główne
|
||||||
|
class Main(TK.Tk):
|
||||||
|
def __init__(self):
|
||||||
|
# Ustawienia okna
|
||||||
|
TK.Tk.__init__(self)
|
||||||
|
self.title(Nazwa + " " + Wersja)
|
||||||
|
self.resizable(width = False, height = False)
|
||||||
|
self.configure(bg = M_tlo)
|
||||||
|
|
||||||
|
|
||||||
|
# Tytuł
|
||||||
|
Tytul = TK.Label(self)
|
||||||
|
Tytul.config(text = Nazwa)
|
||||||
|
Tytul.config(width = 41)
|
||||||
|
Tytul.config(bg = M_tytultlo)
|
||||||
|
Tytul.config(fg = M_tytultext)
|
||||||
|
Tytul.config(font = ('Segoe UI Semilight', 30))
|
||||||
|
Tytul.grid(row = 0)
|
||||||
|
|
||||||
|
|
||||||
|
# Frame1 - Pliki z danymi
|
||||||
|
Ramka1 = TK.LabelFrame(self)
|
||||||
|
Ramka1.config(text=' Pliki tekstowe zawierające dane (wymagany przynajmniej jeden) ')
|
||||||
|
Ramka1.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka1.config(bg = M_tlo)
|
||||||
|
Ramka1.config(fg = M_text)
|
||||||
|
Ramka1.grid(row = 1)
|
||||||
|
|
||||||
|
|
||||||
|
# Ścieżka pliku txt nr 1
|
||||||
|
wiersz = 1
|
||||||
|
text1 = TK.StringVar()
|
||||||
|
|
||||||
|
Pole1Label = TK.Label(Ramka1)
|
||||||
|
Pole1Label.config(text = 'Plik z danymi (1)')
|
||||||
|
Pole1Label.config(width = SzerokoscOpisu)
|
||||||
|
Pole1Label.config(bg = M_tlo)
|
||||||
|
Pole1Label.config(fg = M_text)
|
||||||
|
Pole1Label.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
Pole1 = TK.Entry(Ramka1)
|
||||||
|
Pole1.config(textvariable = text1)
|
||||||
|
Pole1.config(width = SzerokoscPola)
|
||||||
|
Pole1.config(bg = M_entrytlo)
|
||||||
|
Pole1.config(fg = M_text)
|
||||||
|
Pole1.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def Pole1BrowseDialog():
|
||||||
|
Pole1Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
||||||
|
Pole1.delete(0, 'end')
|
||||||
|
Pole1.insert(0, Pole1Browse.filename)
|
||||||
|
|
||||||
|
Pole1Browse = TK.Button(Ramka1)
|
||||||
|
Pole1Browse.config(text = '...')
|
||||||
|
Pole1Browse.config(command = Pole1BrowseDialog)
|
||||||
|
Pole1Browse.config(bg = M_przycisktlo)
|
||||||
|
Pole1Browse.config(fg = M_przycisktext)
|
||||||
|
Pole1Browse.config(relief = 'flat')
|
||||||
|
Pole1Browse.config(activebackground = M_przycisktlo)
|
||||||
|
Pole1Browse.grid(row = wiersz, column = 2, padx=5, pady=3)
|
||||||
|
|
||||||
|
|
||||||
|
# Ścieżka pliku txt nr 2
|
||||||
|
wiersz = 2
|
||||||
|
text2 = TK.StringVar()
|
||||||
|
|
||||||
|
Pole2Label = TK.Label(Ramka1)
|
||||||
|
Pole2Label.config(text = 'Plik z danymi (2)')
|
||||||
|
Pole2Label.config(width = SzerokoscOpisu)
|
||||||
|
Pole2Label.config(bg = M_tlo)
|
||||||
|
Pole2Label.config(fg = M_text)
|
||||||
|
Pole2Label.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
Pole2 = TK.Entry(Ramka1)
|
||||||
|
Pole2.config(textvariable = text2)
|
||||||
|
Pole2.config(width = SzerokoscPola)
|
||||||
|
Pole2.config(bg = M_entrytlo)
|
||||||
|
Pole2.config(fg = M_text)
|
||||||
|
Pole2.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def Pole2BrowseDialog():
|
||||||
|
Pole2Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
||||||
|
Pole2.delete(0, 'end')
|
||||||
|
Pole2.insert(0, Pole2Browse.filename)
|
||||||
|
|
||||||
|
Pole2Browse = TK.Button(Ramka1)
|
||||||
|
Pole2Browse.config(text = '...')
|
||||||
|
Pole2Browse.config(command = Pole2BrowseDialog)
|
||||||
|
Pole2Browse.config(bg = M_przycisktlo)
|
||||||
|
Pole2Browse.config(fg = M_przycisktext)
|
||||||
|
Pole2Browse.config(relief = 'flat')
|
||||||
|
Pole2Browse.config(activebackground = M_przycisktlo)
|
||||||
|
Pole2Browse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
||||||
|
|
||||||
|
# Ścieżka pliku txt nr 3
|
||||||
|
wiersz = 3
|
||||||
|
text3 = TK.StringVar()
|
||||||
|
|
||||||
|
Pole3Label = TK.Label(Ramka1)
|
||||||
|
Pole3Label.config(text = 'Plik z danymi (3)')
|
||||||
|
Pole3Label.config(width = SzerokoscOpisu)
|
||||||
|
Pole3Label.config(bg = M_tlo)
|
||||||
|
Pole3Label.config(fg = M_text)
|
||||||
|
Pole3Label.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
Pole3 = TK.Entry(Ramka1)
|
||||||
|
Pole3.config(textvariable = text3)
|
||||||
|
Pole3.config(width = SzerokoscPola)
|
||||||
|
Pole3.config(bg = M_entrytlo)
|
||||||
|
Pole3.config(fg = M_text)
|
||||||
|
Pole3.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def Pole3BrowseDialog():
|
||||||
|
Pole3Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
||||||
|
Pole3.delete(0, 'end')
|
||||||
|
Pole3.insert(0, Pole3Browse.filename)
|
||||||
|
|
||||||
|
Pole3Browse = TK.Button(Ramka1)
|
||||||
|
Pole3Browse.config(text = '...')
|
||||||
|
Pole3Browse.config(command = Pole3BrowseDialog)
|
||||||
|
Pole3Browse.config(bg = M_przycisktlo)
|
||||||
|
Pole3Browse.config(fg = M_przycisktext)
|
||||||
|
Pole3Browse.config(relief = 'flat')
|
||||||
|
Pole3Browse.config(activebackground = M_przycisktlo)
|
||||||
|
Pole3Browse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
||||||
|
|
||||||
|
|
||||||
|
# Frame2 - Dołącz pliki .csv
|
||||||
|
Ramka2 = TK.LabelFrame(self)
|
||||||
|
Ramka2.config(text = ' Dołącz pliki .csv (opcjonalne) ')
|
||||||
|
Ramka2.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka2.config(bg = M_tlo)
|
||||||
|
Ramka2.config(fg = M_text)
|
||||||
|
Ramka2.grid(row = 2)
|
||||||
|
|
||||||
|
|
||||||
|
# Sciezka do konta.csv
|
||||||
|
wiersz = 1
|
||||||
|
textKonta = TK.StringVar()
|
||||||
|
|
||||||
|
PoleKontaLabel = TK.Label(Ramka2)
|
||||||
|
PoleKontaLabel.config(text = 'Ściezka do pliku .csv dla poczty')
|
||||||
|
PoleKontaLabel.config(width = SzerokoscOpisu2)
|
||||||
|
PoleKontaLabel.config(bg = M_tlo)
|
||||||
|
PoleKontaLabel.config(fg = M_text)
|
||||||
|
PoleKontaLabel.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
PoleKonta = TK.Entry(Ramka2)
|
||||||
|
PoleKonta.config(textvariable = textKonta)
|
||||||
|
PoleKonta.config(width = SzerokoscPola2)
|
||||||
|
PoleKonta.config(bg = M_entrytlo)
|
||||||
|
PoleKonta.config(fg = M_text)
|
||||||
|
PoleKonta.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def PoleKontaBrowseDialog():
|
||||||
|
PoleKontaBrowse.filename = TKfld.askopenfilename(initialdir="C:/", title="Wybierz plik .csv dla poczty", filetypes=(("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
||||||
|
PoleKonta.delete(0, 'end')
|
||||||
|
PoleKonta.insert(0, PoleKontaBrowse.filename)
|
||||||
|
|
||||||
|
PoleKontaBrowse = TK.Button(Ramka2)
|
||||||
|
PoleKontaBrowse.config(text = '...')
|
||||||
|
PoleKontaBrowse.config(command = PoleKontaBrowseDialog)
|
||||||
|
PoleKontaBrowse.config(bg = M_przycisktlo)
|
||||||
|
PoleKontaBrowse.config(fg = M_przycisktext)
|
||||||
|
PoleKontaBrowse.config(relief = 'flat')
|
||||||
|
PoleKontaBrowse.config(activebackground = M_przycisktlo)
|
||||||
|
PoleKontaBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
||||||
|
|
||||||
|
|
||||||
|
# Sciezka do office.csv
|
||||||
|
wiersz = 2
|
||||||
|
textOffice = TK.StringVar()
|
||||||
|
|
||||||
|
PoleOfficeLabel = TK.Label(Ramka2)
|
||||||
|
PoleOfficeLabel.config(text = 'Ściezka do pliku .csv dla office365')
|
||||||
|
PoleOfficeLabel.config(width = SzerokoscOpisu2)
|
||||||
|
PoleOfficeLabel.config(bg = M_tlo)
|
||||||
|
PoleOfficeLabel.config(fg = M_text)
|
||||||
|
PoleOfficeLabel.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
PoleOffice = TK.Entry(Ramka2)
|
||||||
|
PoleOffice.config(textvariable = textOffice)
|
||||||
|
PoleOffice.config(width = SzerokoscPola2)
|
||||||
|
PoleOffice.config(bg = M_entrytlo)
|
||||||
|
PoleOffice.config(fg = M_text)
|
||||||
|
PoleOffice.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def PoleOfficeBrowseDialog():
|
||||||
|
PoleOfficeBrowse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik .csv dla poczty", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
||||||
|
PoleOffice.delete(0, 'end')
|
||||||
|
PoleOffice.insert(0, PoleOfficeBrowse.filename)
|
||||||
|
|
||||||
|
PoleOfficeBrowse = TK.Button(Ramka2)
|
||||||
|
PoleOfficeBrowse.config(text = '...')
|
||||||
|
PoleOfficeBrowse.config(command = PoleKontaBrowseDialog)
|
||||||
|
PoleOfficeBrowse.config(bg = M_przycisktlo)
|
||||||
|
PoleOfficeBrowse.config(fg = M_przycisktext)
|
||||||
|
PoleOfficeBrowse.config(relief = 'flat')
|
||||||
|
PoleOfficeBrowse.config(activebackground = M_przycisktlo)
|
||||||
|
PoleOfficeBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
||||||
|
|
||||||
|
|
||||||
|
# Frame3 - Eksport
|
||||||
|
Ramka3 = TK.LabelFrame(self)
|
||||||
|
Ramka3.config(text=' Eksport ')
|
||||||
|
Ramka3.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka3.config(bg = M_tlo)
|
||||||
|
Ramka3.config(fg = M_text)
|
||||||
|
Ramka3.grid(row = 3)
|
||||||
|
|
||||||
|
|
||||||
|
# Sciezka do pliku poczty
|
||||||
|
wiersz = 1
|
||||||
|
textKontaEksport = TK.StringVar()
|
||||||
|
|
||||||
|
PoleKontaEksportLabel = TK.Label(Ramka3)
|
||||||
|
PoleKontaEksportLabel.config(text = 'Poczta')
|
||||||
|
PoleKontaEksportLabel.config(width = SzerokoscOpisu3)
|
||||||
|
PoleKontaEksportLabel.config(bg = M_tlo)
|
||||||
|
PoleKontaEksportLabel.config(fg = M_text)
|
||||||
|
PoleKontaEksportLabel.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
PoleKontaEksport = TK.Entry(Ramka3)
|
||||||
|
PoleKontaEksport.config(textvariable = textKontaEksport)
|
||||||
|
PoleKontaEksport.config(width = SzerokoscPola3)
|
||||||
|
PoleKontaEksport.config(bg = M_entrytlo)
|
||||||
|
PoleKontaEksport.config(fg = M_text)
|
||||||
|
PoleKontaEksport.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def PoleKontaEksportBrowseDialog():
|
||||||
|
PoleKontaEksportBrowse.filename = TKfld.saveasfilename(initialdir = "C:/", title = "Zapisz", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
||||||
|
PoleKontaEksport.delete(0, 'end')
|
||||||
|
PoleKontaEksport.insert(0, PoleKontaEksportBrowse.filename)
|
||||||
|
|
||||||
|
PoleKontaEksportBrowse = TK.Button(Ramka3)
|
||||||
|
PoleKontaEksportBrowse.config(text = '...')
|
||||||
|
PoleKontaEksportBrowse.config(command = PoleKontaEksportBrowseDialog)
|
||||||
|
PoleKontaEksportBrowse.config(bg = M_przycisktlo)
|
||||||
|
PoleKontaEksportBrowse.config(fg = M_przycisktext)
|
||||||
|
PoleKontaEksportBrowse.config(relief = 'flat')
|
||||||
|
PoleKontaEksportBrowse.config(activebackground = M_przycisktlo)
|
||||||
|
PoleKontaEksportBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
||||||
|
|
||||||
|
# Sciezka do pliku office
|
||||||
|
wiersz = 2
|
||||||
|
textOfficeEksport = TK.StringVar()
|
||||||
|
|
||||||
|
PoleOfficeEksportLabel = TK.Label(Ramka3)
|
||||||
|
PoleOfficeEksportLabel.config(text = 'Office')
|
||||||
|
PoleOfficeEksportLabel.config(width = SzerokoscOpisu3)
|
||||||
|
PoleOfficeEksportLabel.config(bg = M_tlo)
|
||||||
|
PoleOfficeEksportLabel.config(fg = M_text)
|
||||||
|
PoleOfficeEksportLabel.grid(row = wiersz, column = 0)
|
||||||
|
|
||||||
|
PoleOfficeEksport = TK.Entry(Ramka3)
|
||||||
|
PoleOfficeEksport.config(textvariable = textOfficeEksport)
|
||||||
|
PoleOfficeEksport.config(width = SzerokoscPola3)
|
||||||
|
PoleOfficeEksport.config(bg = M_entrytlo)
|
||||||
|
PoleOfficeEksport.config(fg = M_text)
|
||||||
|
PoleOfficeEksport.grid(row = wiersz, column = 1)
|
||||||
|
|
||||||
|
def PoleOfficeEksportBrowseDialog():
|
||||||
|
PoleOfficeEksportBrowse.filename = TKfld.saveasfilename(initialdir = "C:/", title = "Zapisz", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*")))
|
||||||
|
PoleOfficeEksport.delete(0, 'end')
|
||||||
|
PoleOfficeEksport.insert(0, PoleOfficeEksportBrowse.filename)
|
||||||
|
|
||||||
|
PoleOfficeEksportBrowse = TK.Button(Ramka3)
|
||||||
|
PoleOfficeEksportBrowse.config(text = '...')
|
||||||
|
PoleOfficeEksportBrowse.config(command = PoleOfficeEksportBrowseDialog)
|
||||||
|
PoleOfficeEksportBrowse.config(bg = M_przycisktlo)
|
||||||
|
PoleOfficeEksportBrowse.config(fg = M_przycisktext)
|
||||||
|
PoleOfficeEksportBrowse.config(relief = 'flat')
|
||||||
|
PoleOfficeEksportBrowse.config(activebackground = M_przycisktlo)
|
||||||
|
PoleOfficeEksportBrowse.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
||||||
|
|
||||||
|
# Przycisk START
|
||||||
|
def PathPreprocess():
|
||||||
|
pass
|
||||||
|
|
||||||
|
PrzyciskSTART = TK.Button(self)
|
||||||
|
PrzyciskSTART.config(text = 'START')
|
||||||
|
PrzyciskSTART.config(command = PathPreprocess)
|
||||||
|
PrzyciskSTART.config(width = 50)
|
||||||
|
PrzyciskSTART.config(bg = M_przycisktlo)
|
||||||
|
PrzyciskSTART.config(fg = M_przycisktext)
|
||||||
|
PrzyciskSTART.config(relief = 'flat')
|
||||||
|
PrzyciskSTART.config(activebackground = M_przycisktlo)
|
||||||
|
PrzyciskSTART.grid(row = 4, pady = 15)
|
||||||
|
|
||||||
|
# Pasek dolny
|
||||||
|
PasekDolny = TK.LabelFrame(self)
|
||||||
|
PasekDolny.config(bd = 0)
|
||||||
|
PasekDolny.config(bg = M_tytultlo)
|
||||||
|
PasekDolny.config(fg = M_tytultext)
|
||||||
|
PasekDolny.grid(row=5)
|
||||||
|
|
||||||
|
InfoLabel = TK.Label(PasekDolny)
|
||||||
|
InfoLabel.config(text = Nazwa + ' ' + Wersja + ' | © ' + Autorzy + ' ' + LataPracy + ' dla ZSP Sobolew')
|
||||||
|
InfoLabel.config(width = 107)
|
||||||
|
InfoLabel.config(justify = 'left')
|
||||||
|
InfoLabel.config(anchor='w')
|
||||||
|
InfoLabel.config(bg = M_tytultlo)
|
||||||
|
InfoLabel.config(fg = M_tytultext)
|
||||||
|
InfoLabel.grid(row = 0, column = 0)
|
||||||
|
|
||||||
|
def InfoOpen():
|
||||||
|
try:
|
||||||
|
x = open('.\instruction.txt')
|
||||||
|
except FileNotFoundError:
|
||||||
|
MDdlg.err(4)
|
||||||
|
else:
|
||||||
|
OS.system("notepad .\instruction.txt")
|
||||||
|
|
||||||
|
PrzyciskINFO = TK.Button(PasekDolny)
|
||||||
|
PrzyciskINFO.config(text = 'Instrukcja')
|
||||||
|
PrzyciskINFO.config(command = InfoOpen)
|
||||||
|
PrzyciskINFO.config(bg = M_przycisktlo)
|
||||||
|
PrzyciskINFO.config(fg = M_przycisktext)
|
||||||
|
PrzyciskINFO.config(relief = 'flat')
|
||||||
|
PrzyciskINFO.config(activebackground = M_przycisktlo)
|
||||||
|
PrzyciskINFO.grid(row = 0, column = 1, padx = 5, pady = 5)
|
||||||
|
|
||||||
|
PrzyciskUSTAWIENIA = TK.Button(PasekDolny)
|
||||||
|
PrzyciskUSTAWIENIA.config(text = 'Ustawienia')
|
||||||
|
PrzyciskUSTAWIENIA.config(command = self.settingsButton)
|
||||||
|
PrzyciskUSTAWIENIA.config(bg = M_przycisktlo)
|
||||||
|
PrzyciskUSTAWIENIA.config(fg = M_przycisktext)
|
||||||
|
PrzyciskUSTAWIENIA.config(relief = 'flat')
|
||||||
|
PrzyciskUSTAWIENIA.grid(row = 0, column = 2, padx = 5, pady = 5)
|
||||||
|
|
||||||
|
def settingsButton(self):
|
||||||
|
self.child = Settings(self)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
self.mainloop()
|
||||||
|
|
||||||
|
# Okno ustawień
|
||||||
|
class Settings(TK.Toplevel):
|
||||||
|
def __init__(self, parent):
|
||||||
|
# Ustawienia okna
|
||||||
|
TK.Toplevel.__init__(self, parent)
|
||||||
|
self.title('Ustawienia')
|
||||||
|
self.resizable(width = False, height = False)
|
||||||
|
self.configure(bg = M_tlo)
|
||||||
|
|
||||||
|
liczbawierszy = 0
|
||||||
|
|
||||||
|
# Tytuł
|
||||||
|
Tytul = TK.Label(self)
|
||||||
|
Tytul.config(text = 'Ustawienia')
|
||||||
|
Tytul.config(width = 40)
|
||||||
|
Tytul.config(bg = M_tytultlo)
|
||||||
|
Tytul.config(fg = M_tytultext)
|
||||||
|
Tytul.config(font = ('Segoe UI Semilight', 20))
|
||||||
|
Tytul.grid(row = 0)
|
||||||
|
|
||||||
|
|
||||||
|
# Frame1 - Motyw
|
||||||
|
liczbawierszy += 1
|
||||||
|
Ramka1 = TK.LabelFrame(self)
|
||||||
|
Ramka1.config(text = ' Motyw programu ')
|
||||||
|
Ramka1.config(bg = M_tlo)
|
||||||
|
Ramka1.config(fg = M_text)
|
||||||
|
Ramka1.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka1.grid(row = 1, pady = 5)
|
||||||
|
|
||||||
|
|
||||||
|
if int(MDlcg.read()[0]) == 1:
|
||||||
|
Motyw_list_set = 1
|
||||||
|
else:
|
||||||
|
Motyw_list_set = 0
|
||||||
|
Motyw_list = TKttk.Combobox(Ramka1)
|
||||||
|
Motyw_list.config(textvariable = TK.StringVar())
|
||||||
|
Motyw_list.config(state = 'readonly')
|
||||||
|
Motyw_list.config(width = 93)
|
||||||
|
Motyw_list.grid(row = 0, pady = 5, padx = 5)
|
||||||
|
Motyw_list['values'] = ('Jasny', 'Ciemny')
|
||||||
|
Motyw_list.current(Motyw_list_set)
|
||||||
|
|
||||||
|
|
||||||
|
# Frame2 - Kodowanie
|
||||||
|
liczbawierszy += 1
|
||||||
|
Ramka2 = TK.LabelFrame(self)
|
||||||
|
Ramka2.config(text = ' Kodowanie wyjściowe ')
|
||||||
|
Ramka2.config(bg = M_tlo)
|
||||||
|
Ramka2.config(fg = M_text)
|
||||||
|
Ramka2.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka2.grid(row = 2, pady = 5)
|
||||||
|
|
||||||
|
Code_list = TKttk.Combobox(Ramka2)
|
||||||
|
Code_list.config(textvariable = TK.StringVar())
|
||||||
|
Code_list.config(state = 'readonly')
|
||||||
|
Code_list.config(width = 93)
|
||||||
|
Code_list.grid(row = 0, pady = 5, padx = 5)
|
||||||
|
Code_list['values'] = ('utf-8')
|
||||||
|
Code_list.set(MDlcg.read()[1])
|
||||||
|
|
||||||
|
|
||||||
|
# Frame3 - Format plików wejściowych
|
||||||
|
SzerokoscPolaWej = 35
|
||||||
|
WysokoscPolaWej = 8
|
||||||
|
|
||||||
|
liczbawierszy += 1
|
||||||
|
Ramka3 = TK.LabelFrame(self)
|
||||||
|
Ramka3.config(text = ' Format plików wejściowych ')
|
||||||
|
Ramka3.config(bg = M_tlo)
|
||||||
|
Ramka3.config(fg = M_text)
|
||||||
|
Ramka3.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka3.grid(row = 3, pady = 5)
|
||||||
|
|
||||||
|
UczniowieLabel = TK.Label(Ramka3)
|
||||||
|
UczniowieLabel.config(text = 'Uczniowie')
|
||||||
|
UczniowieLabel.config(justify = 'center')
|
||||||
|
UczniowieLabel.config(bg = M_tlo)
|
||||||
|
UczniowieLabel.config(fg = M_text)
|
||||||
|
UczniowieLabel.grid(row = 0, column = 0)
|
||||||
|
|
||||||
|
uczfmt = MDlfm.read()[0]
|
||||||
|
uczfmt = '\n'.join(uczfmt)
|
||||||
|
UczniowieFormat = TK.Text(Ramka3)
|
||||||
|
UczniowieFormat.config(width = SzerokoscPolaWej)
|
||||||
|
UczniowieFormat.config(height = WysokoscPolaWej)
|
||||||
|
UczniowieFormat.config(bg = M_entrytlo)
|
||||||
|
UczniowieFormat.config(fg = M_text)
|
||||||
|
UczniowieFormat.grid(row = 1, column = 0, padx = 5, pady = 5)
|
||||||
|
UczniowieFormat.insert(TK.END, uczfmt)
|
||||||
|
|
||||||
|
NauczycieleLabel = TK.Label(Ramka3)
|
||||||
|
NauczycieleLabel.config(text = 'Nauczyciele')
|
||||||
|
NauczycieleLabel.config(justify = 'center')
|
||||||
|
NauczycieleLabel.config(bg = M_tlo)
|
||||||
|
NauczycieleLabel.config(fg = M_text)
|
||||||
|
NauczycieleLabel.grid(row = 0, column = 1)
|
||||||
|
|
||||||
|
nczfmt = MDlfm.read()[1]
|
||||||
|
nczfmt = '\n'.join(nczfmt)
|
||||||
|
NauczycieleFormat = TK.Text(Ramka3)
|
||||||
|
NauczycieleFormat.config(width = SzerokoscPolaWej)
|
||||||
|
NauczycieleFormat.config(height = WysokoscPolaWej)
|
||||||
|
NauczycieleFormat.config(bg = M_entrytlo)
|
||||||
|
NauczycieleFormat.config(fg = M_text)
|
||||||
|
NauczycieleFormat.grid(row = 1, column = 1, padx = 5, pady = 5)
|
||||||
|
NauczycieleFormat.insert(TK.END, nczfmt)
|
||||||
|
|
||||||
|
OpisFmt = TK.LabelFrame(Ramka3)
|
||||||
|
OpisFmt.config(bg=M_tlo)
|
||||||
|
OpisFmt.config(fg=M_text)
|
||||||
|
OpisFmt.config(borderwidth=0)
|
||||||
|
OpisFmt.grid(row=2, pady=5, columnspan=4)
|
||||||
|
|
||||||
|
Opis1 = TK.Label(OpisFmt)
|
||||||
|
Opis1.config(text='Dozwolone znaki:')
|
||||||
|
Opis1.config(bg=M_tlo)
|
||||||
|
Opis1.config(fg=M_text)
|
||||||
|
Opis1.grid(row=0, columnspan=7)
|
||||||
|
|
||||||
|
Opis2_1 = TK.Label(OpisFmt)
|
||||||
|
Opis2_1.config(text='K - Klasa')
|
||||||
|
Opis2_1.config(bg=M_tlo)
|
||||||
|
Opis2_1.config(fg=M_text)
|
||||||
|
Opis2_1.grid(row=1, column=0)
|
||||||
|
|
||||||
|
Opis2_2 = TK.Label(OpisFmt)
|
||||||
|
Opis2_2.config(text='O - Oddzial')
|
||||||
|
Opis2_2.config(bg=M_tlo)
|
||||||
|
Opis2_2.config(fg=M_text)
|
||||||
|
Opis2_2.grid(row=1, column=1)
|
||||||
|
|
||||||
|
Opis2_3 = TK.Label(OpisFmt)
|
||||||
|
Opis2_3.config(text='N - Nazwisko')
|
||||||
|
Opis2_3.config(bg=M_tlo)
|
||||||
|
Opis2_3.config(fg=M_text)
|
||||||
|
Opis2_3.grid(row=1, column=2)
|
||||||
|
|
||||||
|
Opis2_4 = TK.Label(OpisFmt)
|
||||||
|
Opis2_4.config(text='I - Imię')
|
||||||
|
Opis2_4.config(bg=M_tlo)
|
||||||
|
Opis2_4.config(fg=M_text)
|
||||||
|
Opis2_4.grid(row=1, column=3)
|
||||||
|
|
||||||
|
Opis2_5 = TK.Label(OpisFmt)
|
||||||
|
Opis2_5.config(text='L - Login')
|
||||||
|
Opis2_5.config(bg=M_tlo)
|
||||||
|
Opis2_5.config(fg=M_text)
|
||||||
|
Opis2_5.grid(row=1, column=4)
|
||||||
|
|
||||||
|
Opis2_6 = TK.Label(OpisFmt)
|
||||||
|
Opis2_6.config(text = 'X - Dane nieznaczące')
|
||||||
|
Opis2_6.config(bg = M_tlo)
|
||||||
|
Opis2_6.config(fg = M_text)
|
||||||
|
Opis2_6.grid(row = 1, column = 5)
|
||||||
|
|
||||||
|
Opis2_6 = TK.Label(OpisFmt)
|
||||||
|
Opis2_6.config(text='Q - Pusta linia')
|
||||||
|
Opis2_6.config(bg=M_tlo)
|
||||||
|
Opis2_6.config(fg=M_text)
|
||||||
|
Opis2_6.grid(row=1, column=6)
|
||||||
|
|
||||||
|
Opis3 = TK.Label(OpisFmt)
|
||||||
|
Opis3.config(text='Pozostałe znaki oprócz cyfr i pozostałych liter')
|
||||||
|
Opis3.config(bg=M_tlo)
|
||||||
|
Opis3.config(fg=M_text)
|
||||||
|
Opis3.grid(row=2, columnspan = 7)
|
||||||
|
|
||||||
|
|
||||||
|
# Frame4 - Stałe
|
||||||
|
liczbawierszy += 1
|
||||||
|
Ramka4 = TK.LabelFrame(self)
|
||||||
|
Ramka4.config(text = ' Ustawienia generowania ')
|
||||||
|
Ramka4.config(bg = M_tlo)
|
||||||
|
Ramka4.config(fg = M_text)
|
||||||
|
Ramka4.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka4.grid(row = 4, pady = 5)
|
||||||
|
|
||||||
|
|
||||||
|
# Długość liceum i branżowej
|
||||||
|
RamkaDl = TK.LabelFrame(Ramka4)
|
||||||
|
RamkaDl.config(bg = M_tlo)
|
||||||
|
RamkaDl.config(fg = M_text)
|
||||||
|
RamkaDl.config(borderwidth = 0)
|
||||||
|
RamkaDl.grid(row = 0, pady = 5, columnspan = 2)
|
||||||
|
|
||||||
|
DlLicLabel = TK.Label(RamkaDl)
|
||||||
|
DlLicLabel.config(text = 'Lata nauki w liceum')
|
||||||
|
DlLicLabel.config(width = SzerokoscOpisu + 5)
|
||||||
|
DlLicLabel.config(bg = M_tlo)
|
||||||
|
DlLicLabel.config(fg = M_text)
|
||||||
|
DlLicLabel.grid(row = 0, column = 0)
|
||||||
|
|
||||||
|
DlLicValue = TK.IntVar()
|
||||||
|
DlLicPole = TK.Spinbox(RamkaDl)
|
||||||
|
DlLicPole.config(textvariable = DlLicValue)
|
||||||
|
DlLicPole.config(from_ = 1, to = 10)
|
||||||
|
DlLicPole.config(width = 18)
|
||||||
|
DlLicPole.config(bg = M_entrytlo)
|
||||||
|
DlLicPole.config(fg = M_text)
|
||||||
|
DlLicPole.grid(row = 0, column = 1, padx = 5, pady = 5)
|
||||||
|
DlLicPole.delete(0, 'end')
|
||||||
|
DlLicPole.insert(0, int(MDlcg.read()[5]))
|
||||||
|
|
||||||
|
DlBrLabel = TK.Label(RamkaDl)
|
||||||
|
DlBrLabel.config(text='Lata nauki w branżowej')
|
||||||
|
DlBrLabel.config(width = SzerokoscOpisu + 5)
|
||||||
|
DlBrLabel.config(bg = M_tlo)
|
||||||
|
DlBrLabel.config(fg = M_text)
|
||||||
|
DlBrLabel.grid(row = 0, column = 2)
|
||||||
|
|
||||||
|
DlBrValue = TK.IntVar()
|
||||||
|
DlBrPole = TK.Spinbox(RamkaDl)
|
||||||
|
DlBrPole.config(textvariable = DlBrValue)
|
||||||
|
DlBrPole.config(from_ = 1, to=10)
|
||||||
|
DlBrPole.config(width = 18)
|
||||||
|
DlBrPole.config(bg = M_entrytlo)
|
||||||
|
DlBrPole.config(fg = M_text)
|
||||||
|
DlBrPole.grid(row = 0, column = 3, padx = 5, pady = 5)
|
||||||
|
DlBrPole.delete(0, 'end')
|
||||||
|
DlBrPole.insert(0, int(MDlcg.read()[6]))
|
||||||
|
|
||||||
|
|
||||||
|
# Domena
|
||||||
|
|
||||||
|
DomenaLabel = TK.Label(Ramka4)
|
||||||
|
DomenaLabel.config(text = 'Domena')
|
||||||
|
DomenaLabel.config(width = SzerokoscOpisu + 5)
|
||||||
|
DomenaLabel.config(bg = M_tlo)
|
||||||
|
DomenaLabel.config(fg = M_text)
|
||||||
|
DomenaLabel.grid(row = 2, column = 0)
|
||||||
|
|
||||||
|
text1 = TK.StringVar()
|
||||||
|
PoleDomena = TK.Entry(Ramka4)
|
||||||
|
PoleDomena.config(textvariable = text1)
|
||||||
|
PoleDomena.config(width = 69)
|
||||||
|
PoleDomena.config(bg = M_entrytlo)
|
||||||
|
PoleDomena.config(fg = M_text)
|
||||||
|
PoleDomena.grid(row = 2, column = 1, padx = 5, pady = 5)
|
||||||
|
PoleDomena.insert(0, MDlcg.read()[2])
|
||||||
|
|
||||||
|
|
||||||
|
# Quota
|
||||||
|
|
||||||
|
QuotaLabel = TK.Label(Ramka4)
|
||||||
|
QuotaLabel.config(text = 'Quota (MB)')
|
||||||
|
QuotaLabel.config(width = SzerokoscOpisu)
|
||||||
|
QuotaLabel.config(bg = M_tlo)
|
||||||
|
QuotaLabel.config(fg = M_text)
|
||||||
|
QuotaLabel.grid(row = 3, column = 0)
|
||||||
|
|
||||||
|
value2 = TK.IntVar()
|
||||||
|
PoleQuota = TK.Spinbox(Ramka4)
|
||||||
|
PoleQuota.config(textvariable = value2)
|
||||||
|
PoleQuota.config(from_ = 1, to = 100000)
|
||||||
|
PoleQuota.config(width = 67)
|
||||||
|
PoleQuota.config(bg = M_entrytlo)
|
||||||
|
PoleQuota.config(fg = M_text)
|
||||||
|
PoleQuota.grid(row = 3, column = 1, padx = 5, pady = 5)
|
||||||
|
PoleQuota.delete(0, 'end')
|
||||||
|
PoleQuota.insert(0, int(MDlcg.read()[3]))
|
||||||
|
|
||||||
|
|
||||||
|
# Kraj
|
||||||
|
|
||||||
|
KrajLabel = TK.Label(Ramka4)
|
||||||
|
KrajLabel.config(text = 'Kraj')
|
||||||
|
KrajLabel.config(width = SzerokoscOpisu + 5)
|
||||||
|
KrajLabel.config(bg = M_tlo)
|
||||||
|
KrajLabel.config(fg = M_text)
|
||||||
|
KrajLabel.grid(row = 4, column = 0)
|
||||||
|
|
||||||
|
KrajValue = TK.StringVar()
|
||||||
|
KrajPole = TK.Entry(Ramka4)
|
||||||
|
KrajPole.config(textvariable = KrajValue)
|
||||||
|
KrajPole.config(width = 69)
|
||||||
|
KrajPole.config(bg = M_entrytlo)
|
||||||
|
KrajPole.config(fg = M_text)
|
||||||
|
KrajPole.grid(row = 4, column = 1, padx = 5, pady = 5)
|
||||||
|
KrajPole.insert(0, MDlcg.read()[4])
|
||||||
|
|
||||||
|
|
||||||
|
# Przycisk ZAPISZ
|
||||||
|
def save():
|
||||||
|
if MDdlg.ask(1):
|
||||||
|
motyw = Motyw_list.get()
|
||||||
|
if motyw == 'Jasny':
|
||||||
|
motyw = '0'
|
||||||
|
else:
|
||||||
|
motyw = '1'
|
||||||
|
kodowanie = Code_list.get()
|
||||||
|
uczniowiefmt = UczniowieFormat.get('1.0', 'end')
|
||||||
|
nauczycielefmt = NauczycieleFormat.get('1.0', 'end')
|
||||||
|
liclata = DlLicPole.get()
|
||||||
|
brlata = DlBrPole.get()
|
||||||
|
domena = PoleDomena.get()
|
||||||
|
quota = PoleQuota.get()
|
||||||
|
kraj = KrajPole.get()
|
||||||
|
SettingsToSave = [motyw, kodowanie, domena, quota, kraj, liclata, brlata]
|
||||||
|
FormatToSave = [uczniowiefmt, nauczycielefmt]
|
||||||
|
if MDlfm.edit(FormatToSave):
|
||||||
|
MDlcg.edit(SettingsToSave)
|
||||||
|
MDdlg.inf(0)
|
||||||
|
self.destroy()
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
PrzyciskZAPISZ = TK.Button(self)
|
||||||
|
PrzyciskZAPISZ.config(text = 'ZAPISZ')
|
||||||
|
PrzyciskZAPISZ.config(command = save)
|
||||||
|
PrzyciskZAPISZ.config(width = 50)
|
||||||
|
PrzyciskZAPISZ.config(bg = M_przycisktlo)
|
||||||
|
PrzyciskZAPISZ.config(fg = M_przycisktext)
|
||||||
|
PrzyciskZAPISZ.config(relief = 'flat')
|
||||||
|
PrzyciskZAPISZ.config(activebackground = M_przycisktlo)
|
||||||
|
PrzyciskZAPISZ.grid(row = liczbawierszy + 1, pady = 15)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Inicjacja okna głównego
|
||||||
|
OknoGlowne = Main()
|
||||||
|
OknoGlowne.run()
|
||||||
0
modules/__init__.py
Normal file
0
modules/__init__.py
Normal file
@@ -26,12 +26,20 @@ import sys as SS
|
|||||||
|
|
||||||
# Moduły składowe programu
|
# Moduły składowe programu
|
||||||
try:
|
try:
|
||||||
import dialog as MDdlg
|
from modules import dialog as MDdlg
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
print('Nie znaleziono modułu programu (dialog.py)\nNie można załadować programu\nKod błędu: E00x0001')
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nie znaleziono jednego z modułów programu (dialog.py). Nie można załadować programu')
|
||||||
|
print('Kod błędu: E00x0011')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
except Exception as exc:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.')
|
||||||
|
print('Treść błędu: ' + exc)
|
||||||
|
print('Kod błędu: E00x0010')
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
SS.exit(0)
|
SS.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -22,11 +22,22 @@
|
|||||||
# Biblioteki zewnętrzne
|
# Biblioteki zewnętrzne
|
||||||
import sys as SS
|
import sys as SS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Moduły składowe programu
|
# Moduły składowe programu
|
||||||
try:
|
try:
|
||||||
import dialog as MDdlg
|
from modules import dialog as MDdlg
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
print('Nie znaleziono modułu programu (dialog.py)\nNie można załadować programu\nKod błędu: E00x0001')
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nie znaleziono jednego z modułów programu (dialog.py). Nie można załadować programu')
|
||||||
|
print('Kod błędu: E00x0011')
|
||||||
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
|
SS.exit(0)
|
||||||
|
except Exception as exc:
|
||||||
|
print('Wystąpił krytyczny błąd!')
|
||||||
|
print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.')
|
||||||
|
print('Treść błędu: ' + exc)
|
||||||
|
print('Kod błędu: E00x0010')
|
||||||
wait = input('Naciśnij ENTER aby wyjść')
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
SS.exit(0)
|
SS.exit(0)
|
||||||
|
|
||||||
Reference in New Issue
Block a user