4.0 Alpha (Build 19350)
This commit is contained in:
3
.idea/workspace.xml
generated
3
.idea/workspace.xml
generated
@@ -81,6 +81,7 @@
|
|||||||
<workItem from="1576401956701" duration="4897000" />
|
<workItem from="1576401956701" duration="4897000" />
|
||||||
<workItem from="1576407152914" duration="5325000" />
|
<workItem from="1576407152914" duration="5325000" />
|
||||||
<workItem from="1576412749235" duration="7110000" />
|
<workItem from="1576412749235" duration="7110000" />
|
||||||
|
<workItem from="1576512214017" duration="18989000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
@@ -103,6 +104,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="1576420299727" 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="1576536334314" 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>
|
||||||
@@ -30,3 +30,10 @@
|
|||||||
- Stworzenie pliku formatu
|
- Stworzenie pliku formatu
|
||||||
- Usunięcie plików format.py i dataprocess.py
|
- Usunięcie plików format.py i dataprocess.py
|
||||||
- Przygotowanie do dalszych prac
|
- Przygotowanie do dalszych prac
|
||||||
|
|
||||||
|
4.0 Alpha (Build 19350)
|
||||||
|
- Zastosowanie klas
|
||||||
|
- Wstępne stworzenie systemu formatu
|
||||||
|
- Modyfikacja interfejsu
|
||||||
|
- Dodanie możliwości dołączenia plików csv do eksportowanych plików (tylko kontrolki)
|
||||||
|
- Usprawnienia kodu
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -25,7 +25,19 @@ E.append(["Błąd pliku konfiguracyjnego (config.cfg).\nNiepoprawna ilość wier
|
|||||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E01x0011)", True]) #2
|
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E01x0011)", True]) #2
|
||||||
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E01x0012)", True]) #3
|
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E01x0012)", True]) #3
|
||||||
E.append(["Nie znaleziono pliku składowego (instruction.txt)\nPrzywróć plik. (E03x0010)", False]) #4
|
E.append(["Nie znaleziono pliku składowego (instruction.txt)\nPrzywróć plik. (E03x0010)", False]) #4
|
||||||
|
E.append(["Nie znaleziono pliku formatu (format.fmt).\nPrzywróć plik (E02x0000)", True]) #5
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników klasy w formacie uczniów nie jest równa 1 (E02x0002)", True]) #6
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników oddziału w formacie uczniów nie jest równa 1 (E02x0003)", True]) #7
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników nazwiska w formacie uczniów nie jest równa 1 (E02x0004)", True]) #8
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników imienia w formacie uczniów nie jest równa 1 (E02x0005)", True]) #9
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników loginu w formacie uczniów nie jest równa 1 (E02x0006)", True]) #10
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie uczniów (E02x0001).", True]) #11
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie nauczycieli (E02x0011).", True]) #12
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników nazwiska w formacie nauczycieli nie jest równa 1 (E02x0012)", True]) #13
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników imienia w formacie nauczycieli nie jest równa 1 (E02x0013)", True]) #14
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników loginu w formacie nauczycieli nie jest równa 1 (E02x0014)", True]) #15
|
||||||
|
E.append(["Błąd pliku formatu (format.fmt).\nNiedozwolone znaki w formacie. (E02x0020).", True]) #16
|
||||||
|
E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 4\nPrzywróć plik. (E01x0013)", True]) #17
|
||||||
|
|
||||||
|
|
||||||
I = [] # Informacje
|
I = [] # Informacje
|
||||||
@@ -34,7 +46,7 @@ I.append(["Pomyślnie zapisano!\nDla niektórych zmian może być wymagane ponow
|
|||||||
|
|
||||||
|
|
||||||
A = [] # Zapytania
|
A = [] # Zapytania
|
||||||
|
A.append("Czy na pewno chcesz rozpocząć generowanie?") #0 (A0001)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ except ModuleNotFoundError:
|
|||||||
def CheckConfig(settings):
|
def CheckConfig(settings):
|
||||||
# Ilość wierszy
|
# Ilość wierszy
|
||||||
try:
|
try:
|
||||||
if len(settings) != 2:
|
if len(settings) != 5:
|
||||||
error = int('x')
|
error = int('x')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
MDdlg.err(1)
|
MDdlg.err(1)
|
||||||
@@ -66,6 +66,12 @@ def CheckConfig(settings):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
MDdlg.err(3)
|
MDdlg.err(3)
|
||||||
|
|
||||||
|
# Linia 4 (int)
|
||||||
|
try:
|
||||||
|
x = int(settings[3])
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(17)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Odczytywanie ustawień z pliku konfiguracyjnego
|
# Odczytywanie ustawień z pliku konfiguracyjnego
|
||||||
@@ -95,7 +101,10 @@ def edit(settings):
|
|||||||
else:
|
else:
|
||||||
SettingsToSave = []
|
SettingsToSave = []
|
||||||
SettingsToSave.append('Ciemny motyw(0/1): ' + str(settings[0]) + '\n')
|
SettingsToSave.append('Ciemny motyw(0/1): ' + str(settings[0]) + '\n')
|
||||||
SettingsToSave.append('Kodowanie wyjsciowe: ' + str(settings[1]))
|
SettingsToSave.append('Kodowanie wyjsciowe: ' + str(settings[1]) + '\n')
|
||||||
|
SettingsToSave.append('Domena: ' + str(settings[2]) + '\n')
|
||||||
|
SettingsToSave.append('Quota: ' + str(settings[3]) + '\n')
|
||||||
|
SettingsToSave.append('Kraj: ' + str(settings[4]))
|
||||||
with open('.\config.cfg', 'w') as cfg:
|
with open('.\config.cfg', 'w') as cfg:
|
||||||
for x in SettingsToSave:
|
for x in SettingsToSave:
|
||||||
cfg.write(x)
|
cfg.write(x)
|
||||||
|
|||||||
@@ -38,3 +38,115 @@ except ModuleNotFoundError:
|
|||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
|
# --------------------------------------------------- # Funkcje # ---------------------------------------------------- #
|
||||||
|
|
||||||
|
# Wewnętrzna funkcja sprawdzająca błędy pliku formatu
|
||||||
|
def CheckFormat(format):
|
||||||
|
uczniowiefmt = ''
|
||||||
|
for x in format[0]:
|
||||||
|
uczniowiefmt += x
|
||||||
|
|
||||||
|
try:
|
||||||
|
if format[0].count('') > 0:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(11)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if uczniowiefmt.count('K') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(6)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if uczniowiefmt.count('O') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(7)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if uczniowiefmt.count('N') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(8)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if uczniowiefmt.count('I') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(9)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if uczniowiefmt.count('L') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(10)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if format[1].count('') > 0:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(12)
|
||||||
|
|
||||||
|
nauczycielefmt = ''
|
||||||
|
for x in format[1]:
|
||||||
|
nauczycielefmt += x
|
||||||
|
|
||||||
|
try:
|
||||||
|
if nauczycielefmt.count('N') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(13)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if nauczycielefmt.count('I') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(14)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if nauczycielefmt.count('L') != 1:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(15)
|
||||||
|
|
||||||
|
NiedozwoloneZnaki = ['1','2','3','4','5','6','7','8','9','0','W','E','R','T','Y','U','P','A','S','D','F','G','H','J','Z','C','V','B','M']
|
||||||
|
try:
|
||||||
|
for x in NiedozwoloneZnaki:
|
||||||
|
if x in nauczycielefmt+uczniowiefmt:
|
||||||
|
error = int('x')
|
||||||
|
except ValueError:
|
||||||
|
MDdlg.err(16)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Odczytywanie ustawień z pliku formatu
|
||||||
|
def read():
|
||||||
|
try:
|
||||||
|
check = open(r'.\format.fmt')
|
||||||
|
except FileNotFoundError:
|
||||||
|
MDdlg.err(5)
|
||||||
|
else:
|
||||||
|
with open(r'.\format.fmt', 'r') as fmt:
|
||||||
|
fmt = fmt.read().split('\n<separator>\n')
|
||||||
|
format = []
|
||||||
|
for x in fmt:
|
||||||
|
format.append(x.split('\n'))
|
||||||
|
CheckFormat(format)
|
||||||
|
return format
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Zapis ustawień do pliku formatu
|
||||||
|
def edit(format):
|
||||||
|
CheckFormat(format)
|
||||||
|
try:
|
||||||
|
check = open(r'.\format.fmt')
|
||||||
|
except FileNotFoundError:
|
||||||
|
MDdlg.err(5)
|
||||||
|
else:
|
||||||
|
FormatToSaveX = []
|
||||||
|
for x in format:
|
||||||
|
FormatToSaveX.append('\n'.join(x))
|
||||||
|
FormatToSave = FormatToSaveX[0] + '\n<separator>\n' + FormatToSaveX[1]
|
||||||
|
with open(r'.\format.fmt', 'w') as fmt:
|
||||||
|
fmt.write(FormatToSave)
|
||||||
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
Nazwa = 'GeneratorCSV'
|
Nazwa = 'GeneratorCSV'
|
||||||
Wersja = '4.0 Experimental'
|
Wersja = '4.0 Experimental'
|
||||||
|
LataPracy = '2019'
|
||||||
|
Autorzy = 'Mateusz Skoczek'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -77,14 +79,14 @@ except ModuleNotFoundError:
|
|||||||
print('Nie znaleziono modułu programu (load_format.py)\nNie można załadować programu\nKod błędu: E00x0003')
|
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ść')
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
SS.exit(0)
|
SS.exit(0)
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
import processing as MDprc
|
import processing as MDprc
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
print('Nie znaleziono modułu programu (processing.py)\nNie można załadować programu\nKod błędu: E00x0004')
|
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ść')
|
wait = input('Naciśnij ENTER aby wyjść')
|
||||||
SS.exit(0)
|
SS.exit(0)
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
# Biblioteki zewnętrzne interfejsu graficznego
|
# Biblioteki zewnętrzne interfejsu graficznego
|
||||||
@@ -99,7 +101,7 @@ import tkinter as TK
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#TODO
|
|
||||||
# ------------------------------------- # Uruchomienie interfejsu graficznego # -------------------------------------- #
|
# ------------------------------------- # Uruchomienie interfejsu graficznego # -------------------------------------- #
|
||||||
|
|
||||||
# Zmienne globalne środowiska graficznego
|
# Zmienne globalne środowiska graficznego
|
||||||
@@ -108,390 +110,520 @@ if int(MDlcg.read()[0]) == 1:
|
|||||||
else:
|
else:
|
||||||
CiemnyMotyw = False
|
CiemnyMotyw = False
|
||||||
SzerokoscOpisu = 17
|
SzerokoscOpisu = 17
|
||||||
|
SzerokoscOpisu2 = 30
|
||||||
|
SzerokoscOpisu3 = 10
|
||||||
SzerokoscPola = 122
|
SzerokoscPola = 122
|
||||||
|
SzerokoscPola2 = 107
|
||||||
|
SzerokoscPola3 = 130
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Kolorystyka okna
|
# Motyw
|
||||||
if CiemnyMotyw:
|
if CiemnyMotyw:
|
||||||
PaletaBarw = ['#1F1F1F', '#191919', '#B8B8B8', '#FFFFFF', '#404040', '#FFFFFF', '#1F1F1F', 1]
|
ZmienneMotywu = ['#1F1F1F', '#191919', '#B8B8B8', '#FFFFFF', '#404040', '#FFFFFF', '#1F1F1F', 1]
|
||||||
else:
|
else:
|
||||||
PaletaBarw = ['#F0F0F0', '#D4D4D4', '#000000', '#000000', '#A6A6A6', '#000000', '#FFFFFF', 2]
|
ZmienneMotywu = ['#F0F0F0', '#D4D4D4', '#000000', '#000000', '#A6A6A6', '#000000', '#FFFFFF', 2]
|
||||||
|
|
||||||
B_tlo = PaletaBarw[0]
|
M_tlo = ZmienneMotywu[0]
|
||||||
B_tytultlo = PaletaBarw[1]
|
M_tytultlo = ZmienneMotywu[1]
|
||||||
B_tytultext = PaletaBarw[2]
|
M_tytultext = ZmienneMotywu[2]
|
||||||
B_text = PaletaBarw[3]
|
M_text = ZmienneMotywu[3]
|
||||||
B_przycisktlo = PaletaBarw[4]
|
M_przycisktlo = ZmienneMotywu[4]
|
||||||
B_przycisktext = PaletaBarw[5]
|
M_przycisktext = ZmienneMotywu[5]
|
||||||
B_entrytlo = PaletaBarw[6]
|
M_entrytlo = ZmienneMotywu[6]
|
||||||
B_framewielkosc = PaletaBarw[7]
|
M_framewielkosc = ZmienneMotywu[7]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Main(TK.Tk):
|
||||||
def settings():
|
def __init__(self):
|
||||||
# Tworzenie okna ustawień
|
# Ustawienia okna
|
||||||
SettingsWindow = TK.Tk()
|
TK.Tk.__init__(self)
|
||||||
SettingsWindow.title('Ustawienia programu')
|
self.title(Nazwa + " " + Wersja)
|
||||||
SettingsWindow.resizable(width = False, height = False)
|
self.resizable(width = False, height = False)
|
||||||
SettingsWindow.configure(background = B_tlo)
|
self.configure(bg = M_tlo)
|
||||||
|
|
||||||
|
|
||||||
# Tytul
|
# Tytuł
|
||||||
Tytul = TK.Label(SettingsWindow)
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
# Tytuł
|
||||||
|
Tytul = TK.Label(self)
|
||||||
Tytul.config(text = 'Ustawienia')
|
Tytul.config(text = 'Ustawienia')
|
||||||
Tytul.config(width = 20)
|
Tytul.config(width = 40)
|
||||||
Tytul.config(bg = B_tytultlo, fg = B_tytultext)
|
Tytul.config(bg = M_tytultlo)
|
||||||
|
Tytul.config(fg = M_tytultext)
|
||||||
Tytul.config(font = ('Segoe UI Semilight', 20))
|
Tytul.config(font = ('Segoe UI Semilight', 20))
|
||||||
Tytul.grid(row = 0)
|
Tytul.grid(row = 0)
|
||||||
|
|
||||||
|
|
||||||
# Frame1 - Motyw
|
# Frame1 - Motyw
|
||||||
Ramka1 = TK.LabelFrame(SettingsWindow)
|
Ramka1 = TK.LabelFrame(self)
|
||||||
Ramka1.config(text = ' Motyw programu ')
|
Ramka1.config(text = ' Motyw programu ')
|
||||||
Ramka1.config(bg = B_tlo, fg = B_text)
|
Ramka1.config(bg = M_tlo)
|
||||||
Ramka1.config(borderwidth = B_framewielkosc)
|
Ramka1.config(fg = M_text)
|
||||||
|
Ramka1.config(borderwidth = M_framewielkosc)
|
||||||
Ramka1.grid(row = 1, pady = 5)
|
Ramka1.grid(row = 1, pady = 5)
|
||||||
|
|
||||||
Motyw_var = TK.StringVar()
|
Motyw_var = TK.StringVar()
|
||||||
if int(MDlcg.read()[0]) == 1:
|
if int(MDlcg.read()[0]) == 1:
|
||||||
Motyw_var.set('Ciemny')
|
Motyw_var.set('Ciemny')
|
||||||
Motyw_index = 1
|
Motyw_list_set = 'Ciemny'
|
||||||
else:
|
else:
|
||||||
Motyw_var.set('Jasny')
|
Motyw_var.set('Jasny')
|
||||||
Motyw_index = 0
|
Motyw_list_set = 'Jasny'
|
||||||
|
|
||||||
Motyw_list = TKttk.Combobox(Ramka1)
|
Motyw_list = TKttk.Combobox(Ramka1)
|
||||||
Motyw_list.config(textvariable = Motyw_var, state = 'readonly')
|
Motyw_list.config(textvariable = Motyw_var)
|
||||||
Motyw_list.config(width = 43)
|
Motyw_list.config(state = 'readonly')
|
||||||
|
Motyw_list.config(width = 93)
|
||||||
Motyw_list.grid(row = 0, pady = 5, padx = 5)
|
Motyw_list.grid(row = 0, pady = 5, padx = 5)
|
||||||
Motyw_list['values'] = ('Jasny', 'Ciemny')
|
Motyw_list['values'] = ('Jasny', 'Ciemny')
|
||||||
Motyw_list.current(Motyw_index)
|
Motyw_list.set(Motyw_list_set)
|
||||||
|
|
||||||
|
|
||||||
# Frame2 - Kodowanie
|
# Frame2 - Kodowanie
|
||||||
Ramka2 = TK.LabelFrame(SettingsWindow)
|
Ramka2 = TK.LabelFrame(self)
|
||||||
Ramka2.config(text = ' Kodowanie wyjściowe ')
|
Ramka2.config(text = ' Kodowanie wyjściowe ')
|
||||||
Ramka2.config(bg = B_tlo, fg = B_text)
|
Ramka2.config(bg = M_tlo)
|
||||||
Ramka2.config(borderwidth = B_framewielkosc)
|
Ramka2.config(fg = M_text)
|
||||||
|
Ramka2.config(borderwidth = M_framewielkosc)
|
||||||
Ramka2.grid(row = 2, pady = 5)
|
Ramka2.grid(row = 2, pady = 5)
|
||||||
|
|
||||||
Code_var = TK.StringVar()
|
Code_var = TK.StringVar()
|
||||||
Code_var.set(MDlcg.read()[1])
|
Code_var.set(MDlcg.read()[1])
|
||||||
|
|
||||||
Code_list = TKttk.Combobox(Ramka2)
|
Code_list = TKttk.Combobox(Ramka2)
|
||||||
Code_list.config(textvariable = Code_var, state = 'readonly')
|
Code_list.config(textvariable = Code_var)
|
||||||
Code_list.config(width = 43)
|
Code_list.config(state = 'readonly')
|
||||||
|
Code_list.config(width = 93)
|
||||||
Code_list.grid(row = 0, pady = 5, padx = 5)
|
Code_list.grid(row = 0, pady = 5, padx = 5)
|
||||||
Code_list['values'] = ('utf-8')
|
Code_list['values'] = ('utf-8')
|
||||||
Code_list.set(MDlcg.read()[1])
|
Code_list.set(MDlcg.read()[1])
|
||||||
|
|
||||||
|
|
||||||
# Przycisk ZAPISZ
|
# Frame3 - Format plików wejściowych
|
||||||
def zapis():
|
SzerokoscPolaWej = 35
|
||||||
X1 = Motyw_list.get()
|
WysokoscPolaWej = 8
|
||||||
if X1 == 'Jasny':
|
|
||||||
X1 = '0'
|
Ramka3 = TK.LabelFrame(self)
|
||||||
else:
|
Ramka3.config(text = ' Format plików wejściowych ')
|
||||||
X1 = '1'
|
Ramka3.config(bg = M_tlo)
|
||||||
X2 = Code_list.get()
|
Ramka3.config(fg = M_text)
|
||||||
ToSave = [X1, X2]
|
Ramka3.config(borderwidth = M_framewielkosc)
|
||||||
MDlcg.edit(ToSave)
|
Ramka3.grid(row = 3, pady = 5)
|
||||||
SettingsWindow.destroy()
|
|
||||||
PrzyciskZAPISZ = TK.Button(SettingsWindow)
|
UczniowieLabel = TK.Label(Ramka3)
|
||||||
PrzyciskZAPISZ.config(text = 'ZAPISZ')
|
UczniowieLabel.config(text = 'Uczniowie')
|
||||||
PrzyciskZAPISZ.config(command = zapis)
|
UczniowieLabel.config(justify = 'center')
|
||||||
PrzyciskZAPISZ.config(width = 40)
|
UczniowieLabel.config(bg = M_tlo)
|
||||||
PrzyciskZAPISZ.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat', activebackground = B_przycisktlo)
|
UczniowieLabel.config(fg = M_text)
|
||||||
PrzyciskZAPISZ.grid(row = 3, pady = 8)
|
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)
|
||||||
|
|
||||||
|
|
||||||
SettingsWindow.mainloop()
|
# Frame4 - Stałe
|
||||||
|
Ramka4 = TK.LabelFrame(self)
|
||||||
|
Ramka4.config(text = ' Stałe ')
|
||||||
|
Ramka4.config(bg = M_tlo)
|
||||||
|
Ramka4.config(fg = M_text)
|
||||||
|
Ramka4.config(borderwidth = M_framewielkosc)
|
||||||
|
Ramka4.grid(row = 4, pady = 5)
|
||||||
|
|
||||||
|
DomenaLabel = TK.Label(Ramka4)
|
||||||
|
DomenaLabel.config(text = 'Domena')
|
||||||
|
DomenaLabel.config(width = SzerokoscOpisu3)
|
||||||
|
DomenaLabel.config(bg = M_tlo)
|
||||||
|
DomenaLabel.config(fg = M_text)
|
||||||
|
DomenaLabel.grid(row = 0, column = 0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
# Tworzenie okna głównego
|
|
||||||
MainWindow = TK.Tk()
|
|
||||||
MainWindow.title(Nazwa + ' ' + Wersja)
|
|
||||||
MainWindow.resizable(width = False, height = False)
|
|
||||||
MainWindow.configure(background = B_tlo)
|
|
||||||
|
|
||||||
|
|
||||||
# Tytul
|
|
||||||
Tytul = TK.Label(MainWindow)
|
|
||||||
Tytul.config(text = Nazwa)
|
|
||||||
Tytul.config(width = 41)
|
|
||||||
Tytul.config(bg = B_tytultlo, fg = B_tytultext)
|
|
||||||
Tytul.config(font = ('Segoe UI Semilight', 30))
|
|
||||||
Tytul.grid(row = 0)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame1 - Import
|
|
||||||
Ramka1 = TK.LabelFrame(MainWindow)
|
|
||||||
Ramka1.config(text = ' Pliki do importu zawierające dane ')
|
|
||||||
Ramka1.config(bg = B_tlo, fg = B_text)
|
|
||||||
Ramka1.config(borderwidth = B_framewielkosc)
|
|
||||||
Ramka1.grid(row = 1)
|
|
||||||
|
|
||||||
|
|
||||||
# Ścieżka pliku do importu 1
|
|
||||||
wiersz = 1
|
|
||||||
text1 = TK.StringVar()
|
text1 = TK.StringVar()
|
||||||
|
PoleDomena = TK.Entry(Ramka4)
|
||||||
|
PoleDomena.config(textvariable = text1)
|
||||||
|
PoleDomena.config(width = 83)
|
||||||
|
PoleDomena.config(bg = M_entrytlo)
|
||||||
|
PoleDomena.config(fg = M_text)
|
||||||
|
PoleDomena.grid(row = 0, column = 1, padx = 5, pady = 5)
|
||||||
|
PoleDomena.insert(0, MDlcg.read()[2])
|
||||||
|
|
||||||
OpisPola1 = TK.Label(Ramka1)
|
QuotaLabel = TK.Label(Ramka4)
|
||||||
OpisPola1.config(text = 'Plik z danymi (1)')
|
QuotaLabel.config(text = 'Quota (MB)')
|
||||||
OpisPola1.config(width = SzerokoscOpisu)
|
QuotaLabel.config(width = SzerokoscOpisu3)
|
||||||
OpisPola1.config(bg = B_tlo, fg = B_text)
|
QuotaLabel.config(bg = M_tlo)
|
||||||
OpisPola1.grid(row = wiersz, column = 0)
|
QuotaLabel.config(fg = M_text)
|
||||||
|
QuotaLabel.grid(row = 1, column = 0)
|
||||||
|
|
||||||
Pole1 = TK.Entry(Ramka1)
|
value2 = TK.IntVar()
|
||||||
Pole1.config(textvariable = text1)
|
PoleQuota = TK.Spinbox(Ramka4)
|
||||||
Pole1.config(width = SzerokoscPola)
|
PoleQuota.config(textvariable = value2)
|
||||||
Pole1.config(bg = B_entrytlo, fg = B_text)
|
PoleQuota.config(from_ = 1, to = 100000)
|
||||||
Pole1.grid(row = wiersz, column = 1)
|
PoleQuota.config(width = 81)
|
||||||
|
PoleQuota.config(bg = M_entrytlo)
|
||||||
def Browse1_Dialog():
|
PoleQuota.config(fg = M_text)
|
||||||
Browse1.filename = TKfld.askopenfilename(initialdir = "/", title = "Wybierz plik do importu", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
PoleQuota.grid(row=1, column=1, padx=5, pady=5)
|
||||||
Pole1.delete(0, 'end')
|
PoleQuota.insert(0, int(MDlcg.read()[3]))
|
||||||
Pole1.insert(0, Browse1.filename)
|
print(int(MDlcg.read()[3]))
|
||||||
|
|
||||||
Browse1 = TK.Button(Ramka1)
|
|
||||||
Browse1.config(text = '...')
|
|
||||||
Browse1.config(command = Browse1_Dialog)
|
|
||||||
Browse1.config(bg = B_przycisktlo, fg = B_przycisktext, relief='flat', activebackground = B_przycisktlo)
|
|
||||||
Browse1.grid(row = wiersz, column = 2, padx=5, pady=3)
|
|
||||||
|
|
||||||
|
|
||||||
# Ścieżka pliku do importu 2
|
|
||||||
wiersz = 2
|
|
||||||
text2 = TK.StringVar()
|
|
||||||
|
|
||||||
OpisPola2 = TK.Label(Ramka1)
|
|
||||||
OpisPola2.config(text = 'Plik z danymi (2)')
|
|
||||||
OpisPola2.config(width = SzerokoscOpisu)
|
|
||||||
OpisPola2.config(bg = B_tlo, fg = B_text)
|
|
||||||
OpisPola2.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
Pole2 = TK.Entry(Ramka1)
|
|
||||||
Pole2.config(textvariable = text2)
|
|
||||||
Pole2.config(width = SzerokoscPola)
|
|
||||||
Pole2.config(bg = B_entrytlo, fg = B_text)
|
|
||||||
Pole2.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def Browse2_Dialog():
|
|
||||||
Browse2.filename = TKfld.askopenfilename(initialdir = "/", title = "Wybierz plik do importu", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
|
||||||
Pole2.delete(0, 'end')
|
|
||||||
Pole2.insert(0, Browse2.filename)
|
|
||||||
|
|
||||||
Browse2 = TK.Button(Ramka1)
|
|
||||||
Browse2.config(text = '...')
|
|
||||||
Browse2.config(command = Browse1_Dialog)
|
|
||||||
Browse2.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat', activebackground = B_przycisktlo)
|
|
||||||
Browse2.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Ścieżka pliku do importu 3
|
OknoGlowne = Main()
|
||||||
wiersz = 3
|
OknoGlowne.run()
|
||||||
text3 = TK.StringVar()
|
|
||||||
|
|
||||||
OpisPola3 = TK.Label(Ramka1)
|
|
||||||
OpisPola3.config(text = 'Plik z danymi (3)')
|
|
||||||
OpisPola3.config(width = SzerokoscOpisu)
|
|
||||||
OpisPola3.config(bg = B_tlo, fg = B_text)
|
|
||||||
OpisPola3.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
Pole3 = TK.Entry(Ramka1)
|
|
||||||
Pole3.config(textvariable = text3)
|
|
||||||
Pole3.config(width = SzerokoscPola)
|
|
||||||
Pole3.config(bg = B_entrytlo, fg = B_text)
|
|
||||||
Pole3.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def Browse3_Dialog():
|
|
||||||
Browse3.filename = TKfld.askopenfilename(initialdir = "/", title = "Wybierz plik do importu", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
|
||||||
Pole3.delete(0, 'end')
|
|
||||||
Pole3.insert(0, Browse3.filename)
|
|
||||||
|
|
||||||
Browse3 = TK.Button(Ramka1)
|
|
||||||
Browse3.config(text = '...')
|
|
||||||
Browse3.config(command = Browse1_Dialog)
|
|
||||||
Browse3.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat', activebackground = B_przycisktlo)
|
|
||||||
Browse3.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Ścieżka pliku do importu 4
|
|
||||||
wiersz = 4
|
|
||||||
text4 = TK.StringVar()
|
|
||||||
|
|
||||||
OpisPola4 = TK.Label(Ramka1)
|
|
||||||
OpisPola4.config(text = 'Plik z danymi (4)')
|
|
||||||
OpisPola4.config(width = SzerokoscOpisu)
|
|
||||||
OpisPola4.config(bg = B_tlo, fg = B_text)
|
|
||||||
OpisPola4.grid(row = wiersz, column = 0)
|
|
||||||
|
|
||||||
Pole4 = TK.Entry(Ramka1)
|
|
||||||
Pole4.config(textvariable = text4)
|
|
||||||
Pole4.config(width = SzerokoscPola)
|
|
||||||
Pole4.config(bg = B_entrytlo, fg = B_text)
|
|
||||||
Pole4.grid(row = wiersz, column = 1)
|
|
||||||
|
|
||||||
def Browse4_Dialog():
|
|
||||||
Browse4.filename = TKfld.askopenfilename(initialdir = "/", title = "Wybierz plik do importu", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*")))
|
|
||||||
Pole4.delete(0, 'end')
|
|
||||||
Pole4.insert(0, Browse4.filename)
|
|
||||||
|
|
||||||
Browse4 = TK.Button(Ramka1)
|
|
||||||
Browse4.config(text = '...')
|
|
||||||
Browse4.config(command = Browse1_Dialog)
|
|
||||||
Browse4.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat', activebackground = B_przycisktlo)
|
|
||||||
Browse4.grid(row = wiersz, column = 2, padx = 5, pady = 3)
|
|
||||||
|
|
||||||
|
|
||||||
# Frame2 - Eksport
|
|
||||||
Ramka2 = TK.LabelFrame(MainWindow)
|
|
||||||
Ramka2.config(text = ' Ustawienia eksportu ')
|
|
||||||
Ramka2.config(bg = B_tlo, fg = B_text)
|
|
||||||
Ramka2.config(borderwidth = B_framewielkosc)
|
|
||||||
Ramka2.grid(row = 2)
|
|
||||||
|
|
||||||
# Ścieżka folderu do zapisu wygenerowanych plików
|
|
||||||
textExport = TK.StringVar()
|
|
||||||
|
|
||||||
OpisPolaExport = TK.Label(Ramka2)
|
|
||||||
OpisPolaExport.config(text = 'Lokalizacja')
|
|
||||||
OpisPolaExport.config(width = SzerokoscOpisu)
|
|
||||||
OpisPolaExport.config(bg = B_tlo, fg = B_text, relief = 'flat', activebackground = B_przycisktlo)
|
|
||||||
OpisPolaExport.grid(row=0, column=0)
|
|
||||||
|
|
||||||
PoleExport = TK.Entry(Ramka2)
|
|
||||||
PoleExport.config(textvariable = textExport)
|
|
||||||
PoleExport.config(width = SzerokoscPola)
|
|
||||||
PoleExport.config(bg = B_entrytlo, fg = B_text)
|
|
||||||
PoleExport.grid(row=0, column=1)
|
|
||||||
|
|
||||||
def BrowseExport_Dialog():
|
|
||||||
BrowseExport.filename = TKfld.askdirectory()
|
|
||||||
PoleExport.delete(0, 'end')
|
|
||||||
PoleExport.insert(0, BrowseExport.filename)
|
|
||||||
|
|
||||||
BrowseExport = TK.Button(Ramka2)
|
|
||||||
BrowseExport.config(text='...')
|
|
||||||
BrowseExport.config(command=BrowseExport_Dialog)
|
|
||||||
BrowseExport.config(bg = B_przycisktlo, fg = B_przycisktext, relief='flat', activebackground = B_przycisktlo)
|
|
||||||
BrowseExport.grid(row=0, column=2, padx=5, pady=3)
|
|
||||||
|
|
||||||
|
|
||||||
# Przycisk START
|
|
||||||
def PathPreprocess():
|
|
||||||
if MDdlg.Ask(A001):
|
|
||||||
while True:
|
|
||||||
sciezka1 = Pole1.get()
|
|
||||||
sciezka1_puste = True
|
|
||||||
sciezka2 = Pole2.get()
|
|
||||||
sciezka2_puste = True
|
|
||||||
sciezka3 = Pole3.get()
|
|
||||||
sciezka3_puste = True
|
|
||||||
sciezka4 = Pole3.get()
|
|
||||||
sciezka4_puste = True
|
|
||||||
sciezkaExport = PoleExport.get()
|
|
||||||
sciezkaExport_puste = True
|
|
||||||
|
|
||||||
if sciezka1 != '':
|
|
||||||
sciezka1_puste = False
|
|
||||||
if sciezka2 != '':
|
|
||||||
sciezka2_puste = False
|
|
||||||
if sciezka3 != '':
|
|
||||||
sciezka3_puste = False
|
|
||||||
if sciezka4 != '':
|
|
||||||
sciezka4_puste = False
|
|
||||||
if sciezkaExport != '':
|
|
||||||
sciezkaExport_puste = False
|
|
||||||
|
|
||||||
if sciezka1_puste and sciezka2_puste and sciezka3_puste and sciezka4_puste:
|
|
||||||
MDdlg.Err(E003x01)
|
|
||||||
break
|
|
||||||
if sciezkaExport_puste:
|
|
||||||
MDdlg.Err(E003x02)
|
|
||||||
break
|
|
||||||
KontenerDanych = []
|
|
||||||
if not sciezka1_puste:
|
|
||||||
try:
|
|
||||||
x = open(sciezka1)
|
|
||||||
except FileNotFoundError:
|
|
||||||
MDdlg.Err(E003x111)
|
|
||||||
else:
|
|
||||||
with open(sciezka1, 'r') as plik1:
|
|
||||||
KontenerDanych += MDfmt.przetworz(plik1.read())
|
|
||||||
if not sciezka2_puste:
|
|
||||||
try:
|
|
||||||
x = open(sciezka2)
|
|
||||||
except FileNotFoundError:
|
|
||||||
MDdlg.Err(E003x112)
|
|
||||||
else:
|
|
||||||
with open(sciezka2, 'r') as plik2:
|
|
||||||
KontenerDanych += MDfmt.przetworz(plik2.read())
|
|
||||||
if not sciezka3_puste:
|
|
||||||
try:
|
|
||||||
x = open(sciezka3)
|
|
||||||
except FileNotFoundError:
|
|
||||||
MDdlg.Err(E003x113)
|
|
||||||
else:
|
|
||||||
with open(sciezka3, 'r') as plik3:
|
|
||||||
KontenerDanych += MDfmt.przetworz(plik3.read())
|
|
||||||
if not sciezka4_puste:
|
|
||||||
try:
|
|
||||||
x = open(sciezka4)
|
|
||||||
except FileNotFoundError:
|
|
||||||
MDdlg.Err(E003x114)
|
|
||||||
else:
|
|
||||||
with open(sciezka4, 'r') as plik4:
|
|
||||||
KontenerDanych += MDfmt.przetworz(plik4.read())
|
|
||||||
break
|
|
||||||
MDprc.do(KontenerDanych, sciezkaExport)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
PrzyciskSTART = TK.Button(MainWindow)
|
|
||||||
PrzyciskSTART.config(text = 'START')
|
|
||||||
PrzyciskSTART.config(command = PathPreprocess)
|
|
||||||
PrzyciskSTART.config(width = 50)
|
|
||||||
PrzyciskSTART.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat', activebackground = B_przycisktlo)
|
|
||||||
PrzyciskSTART.grid(row = 3, pady = 15)
|
|
||||||
|
|
||||||
|
|
||||||
# Pasek dolny
|
|
||||||
PasekDolny = TK.LabelFrame(MainWindow)
|
|
||||||
PasekDolny.config(bd = 0, bg = B_tytultlo, fg = B_tytultext)
|
|
||||||
PasekDolny.grid(row = 4)
|
|
||||||
|
|
||||||
InfoLabel = TK.Label(PasekDolny)
|
|
||||||
InfoLabel.config(text = 'GeneratorCSV 3.0 | © Mateusz Skoczek 2019 dla ZSP Sobolew')
|
|
||||||
InfoLabel.config(justify = 'left', anchor='w', width=107)
|
|
||||||
InfoLabel.config(bg = B_tytultlo, fg = B_tytultext)
|
|
||||||
InfoLabel.grid(row=0, column=0)
|
|
||||||
|
|
||||||
def InfoOpen():
|
|
||||||
try:
|
|
||||||
x = open('instrukcja.txt')
|
|
||||||
except FileNotFoundError:
|
|
||||||
MDdlg.Err(E001x02)
|
|
||||||
else:
|
|
||||||
OS.system("notepad instrukcja.txt")
|
|
||||||
|
|
||||||
PrzyciskINFO = TK.Button(PasekDolny)
|
|
||||||
PrzyciskINFO.config(text = 'Instrukcja')
|
|
||||||
PrzyciskINFO.config(command = InfoOpen)
|
|
||||||
PrzyciskINFO.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat', activebackground = B_przycisktlo)
|
|
||||||
PrzyciskINFO.grid(row = 0, column = 1, padx = 5, pady = 5)
|
|
||||||
|
|
||||||
PrzyciskUSTAWIENIA = TK.Button(PasekDolny)
|
|
||||||
PrzyciskUSTAWIENIA.config(text = 'Ustawienia')
|
|
||||||
PrzyciskUSTAWIENIA.config(command = settings)
|
|
||||||
PrzyciskUSTAWIENIA.config(bg = B_przycisktlo, fg = B_przycisktext, relief = 'flat')
|
|
||||||
PrzyciskUSTAWIENIA.grid(row = 0, column = 2, padx = 5, pady = 5)
|
|
||||||
|
|
||||||
MainWindow.mainloop()
|
|
||||||
|
|
||||||
main()
|
|
||||||
@@ -1,2 +1,5 @@
|
|||||||
Ciemny motyw(0/1): 1
|
Ciemny motyw(0/1): 1
|
||||||
Kodowanie wyjsciowe: utf-8
|
Kodowanie wyjsciowe: utf-8
|
||||||
|
Domena: losobolew.pl
|
||||||
|
Quota: 500
|
||||||
|
Kraj: Rzeczypospolita Polska
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
K O N, I X L X
|
||||||
|
Q
|
||||||
|
<separator>
|
||||||
|
N, I X L X
|
||||||
|
Q
|
||||||
Reference in New Issue
Block a user