Plik CSV wyświetlany w tkinter

0

Witam,
prośba o pomoc, chcę wczytać plik CSV i wyświetlić go w głównym oknie programu.
Używam python3 i tkinter, plik mogę wczytać i wyświetlić w konsoli ale jak wyświetlić zawartość csv w oknie aplikacji stworzonej w tkinter ?

poniżej kawałek kodu

def WczytajPlik():
    plik = askopenfilename(initialdir="/home/darek/Desktop",
                           filetypes =(("Excel CSV", "*.csv"),("All Files","*.*")),
                           title = "Wyierz plik"
                           )
    print ("wczytany plik",plik)
    ZawartoscPlikuCSV = pd.read_csv(plik, error_bad_lines=False, warn_bad_lines=False)

    try:
        with open(plik,'r') as UseFile:
            print(UseFile.read())
    except:
        print("No file exists")

    ... wyświetlenie wczytanego pliku CSV w głównym oknie programu ...
0

Ja chyba nigdy nie skminie po co ludzie brną w 'Tkintera' czy 'desktopowe' appki w Pythonie
to się w ogóle do niczego nie przydaje i praktycznie nigdy się tego nie używa :P

0

Bo Tkinter jest dołączany do Pythona. I zrobienie apki typu 2 przyciski i jeden textbox (czyli dorobienie GUI do programu konsolowego) to mniej zachodu niż cały QtDesigner i generowanie z niego klasy dla Pythona. Dajesz komuś skrypt i odpala go w interpreterze, bez ściągania dodatkowych bibliotek.

Mój kolega robił do swojego skryptu w PHP, GUI w czymś przypominającym WinAPI :P

0

Nie znam żadnej biblioteki do robienia aplikacji okienkowych na desktop i nigdy nie potrzebowałem tego użyć.

A zrobienie appki 2 przyciski i 1 textbox zrobiłbym zwyczajnie przy użycie Jinja2.

Odpalam 'skrypt' no i generuje proste statyczne HTMLe jak dorzuce do tego Bootstrapa to mam "interaktywną" elegancką "aplikację" co więcej wygląda to sensownie można odpalić lokalnie i w razie potrzeby można to udostępnić komuś innemu lub wygenerowany taki raport/wykres w postaci HTML itp wysłać np: mailem.

Użycie prostego Bootstrapa nie jest trudniejsze ani bardziej czasochłonne niż Tkinter co więcej operując na HTML/CSS/Bootstrap można uzyskać elegancki "wygląd" wszelkie filtry /"bajery" tak jak na stronie www.

Kiedyś jak robiłem to częściej niż teraz to zrobiłem w poprzedniej firmie sobie coś a'la template do generowania takich "aplikacji"
i robiło się to "szybko" i "fajnie".

Ja wolę takie podejście i co więcej basic Python/Jinja2/HTML/CSS/Bootstrapa zna "każdy" nawet menager ogarnie "kod źródłowy" ktoś spoza Pythona też lajtowo ogarnie od strzała więc w zasadzie każdy może w tym grzebnąć jak mu potrzeba i coś omotać :P

Jeśli dobrze pamiętam Tkintera pisali devsi Javy i napisali to po "javovemu" :P ale nie jestem już pewny czy tak faktycznie jest.

Być może są jakieś sytuacje gdy Tkinter jest konieczny lub lepszy niż to co powyżej opisałem ja się z tym nie spotkałem i wolę to robić tak jak powyżej. Kilka osób udało mi się już przekonać do takiego podejścia :P

0
DolBo napisał(a):

Ja chyba nigdy nie skminie po co ludzie brną w 'Tkintera' czy 'desktopowe' appki w Pythonie
to się w ogóle do niczego nie przydaje i praktycznie nigdy się tego nie używa :P

Bo są lekkie?
Raczej nie ma drugiego równie lekkiego rozwiązania do Pythona.
http://sebsauvage.net/python/gui/

Tkintera stosuje się przede wszystkim tam gdzie potrzebna jest interakcja ale nie ważny jest wygląd (instalatory, toole wewnętrzne, frontendy GUI do narzędzi konsolowych itp).
Podobne rozwiązanie dla Basha nazywa się Dialog:
https://bash.cyberciti.biz/guide/Bash_display_dialog_boxes

Front-end webowy to zupełnie odrębna klasa aplikacji.

0

Front-end to zupełnia odrębna klasa aplikacji OK zgoda.

Tkinter jest lekki i wbudowany to jest bez wątpienia zaleta.

Nie spotkałem się z przypadkiem żeby zrobienie "desktopowej" aplikacji było lepsze w Tkinterze aniżeli w Jinja2/HTML/CSS/Bootstrap.

Aplikacja do odczytu pliku csv w Tkinter brzmi dla mnie totalnie bez sensu - stąd 1 komentarz w temacie.
W mojej opinii lepiej zamiast csv użyć 'jsonlines' http://jsonlines.org/examples/ ale to juz odrębna kwestia.

Sam nigdy nie użyłem Tkintera i nie znam developera który by to robił kiedykolwiek komercyjnie. Zauważyłem że w każdej książce szkoleniu itp uczącej podstaw Pythona jest rozdział o robienie GUI i wszyscy w to brną każdy Junior ma na githubie aplikacje w Tkinterze itp itd.

Ogólnie może ze mną jest tak że "Gdy masz młotek to wszystko wygląda dla Ciebie jak gwóźdź".

1 użytkowników online, w tym zalogowanych: 0, gości: 1