Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Allgemein] -  C# vs Python
#13
Ja, bitte die Live-Version bauen.

Zitat:Perfekt! Dann bauen wir nun eine Live-Version, in der Python periodisch Aufgaben aktualisiert, und die Perl Tk GUI automatisch die Änderungen anzeigt, ohne dass du manuell den Button drücken musst. So entsteht eine echte Echtzeit-Integration zwischen Python und Perl unter Windows.

1️⃣ Projektstruktur
Code:
TaskManagerLive/

├─ tasks_gui_live.pl       ← Perl Tk GUI mit Live-Refresh
├─ tasks_update_live.py    ← Python-Skript zum periodischen Hinzufügen
├─ tasks.json              ← Aufgaben-Datei
├─ run_tasks_gui.bat       ← Batch-Datei zum Starten
└─ README.md

2️⃣
Code:
tasks_update_live.py
– Python-Skript
Code:
import json
import os
import datetime
import time
json_file = "tasks.json"
# Standardaufgaben erzeugen, falls Datei fehlt
if not os.path.exists(json_file):
    tasks = [
        {"task": "Einkaufen", "done": False},
        {"task": "Python lernen", "done": False}
    ]
    with open(json_file, "w") as f:
        json.dump(tasks, f, indent=4)
# Endlosschleife, die alle 10 Sekunden eine neue Aufgabe hinzufügt
while True:
    tasks = json.load(open(json_file))
    timestamp = datetime.datetime.now().strftime("%H:%M:%S")
    tasks.append({"task": f"Automatische Aufgabe {timestamp}", "done": False})
    with open(json_file, "w") as f:
        json.dump(tasks, f, indent=4)
    print(f"[Python] Aufgabe hinzugefügt: Automatische Aufgabe {timestamp}")
    time.sleep(10)
  • Fügt alle 10 Sekunden eine neue Aufgabe hinzu
  • JSON-Datei wird regelmäßig aktualisiert
Zitat:Tipp: Für Windows Task Scheduler oder Hintergrund-Task kann man
Code:
pythonw
verwenden, um kein Konsolenfenster anzuzeigen.

3️⃣
Code:
tasks_gui_live.pl
– Perl Tk GUI mit Live-Refresh
Code:
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
use JSON;
use File::Spec;
my $json_file = File::Spec->catfile(".", "tasks.json");
# JSON laden / speichern
sub load_tasks {
    open my $fh, "<", $json_file or die "Kann Datei nicht öffnen: $!";
    local $/;
    my $json_text = <$fh>;
    close $fh;
    return decode_json($json_text);
}
sub save_tasks {
    my ($tasks_ref) = @_;
    open my $fh, ">", $json_file or die "Kann Datei nicht schreiben: $!";
    print $fh encode_json($tasks_ref);
    close $fh;
}
# GUI
my $mw = MainWindow->new;
$mw->title("Hybrid Task Manager Live");
my $frame = $mw->Frame()->pack(-side => 'top', -fill => 'both', -expand => 1);
my $listbox = $frame->Scrolled("Listbox", -scrollbars => 'e')->pack(-side => 'left', -fill => 'both', -expand => 1);
my $tasks = load_tasks();
sub refresh_list {
    $tasks = load_tasks();
    $listbox->delete(0, 'end');
    for my $i (0..$#$tasks) {
        my $t = $tasks->[$i];
        my $status = $t->{done} ? "✓" : "✗";
        $listbox->insert('end', "$status $t->{task}");
    }
}
refresh_list();
my $entry = $mw->Entry()->pack(-side => 'top', -fill => 'x', -padx => 5, -pady => 5);
# Aufgabe hinzufügen
$mw->Button(-text => "Aufgabe hinzufügen",
            -command => sub {
                my $text = $entry->get;
                return unless $text;
                push @$tasks, { task => $text, done => 0 };
                save_tasks($tasks);
                $entry->delete(0, 'end');
                refresh_list();
            })->pack(-side => 'top', -fill => 'x', -padx => 5, -pady => 5);
# Aufgabe abhaken
$mw->Button(-text => "Ausgewählte Aufgabe erledigen",
            -command => sub {
                my $idx = $listbox->curselection;
                return unless defined $idx->[0];
                $tasks->[$idx->[0]]->{done} = 1;
                save_tasks($tasks);
                refresh_list();
            })->pack(-side => 'top', -fill => 'x', -padx => 5, -pady => 5);
# Live-Refresh alle 2 Sekunden
$mw->repeat(2000 => \&refresh_list);
MainLoop;
  • Alle 2 Sekunden wird
    Code:
    tasks.json
    neu eingelesen
  • Neue Aufgaben vom Python-Skript erscheinen automatisch
  • GUI bleibt interaktiv → Benutzer kann Aufgaben abhaken oder neue hinzufügen

4️⃣
Code:
run_tasks_gui.bat
– Batch-Datei
Code:
@echo off
REM Starte Python im Hintergrund
start python "%~dp0tasks_update_live.py"
REM Starte Perl Tk GUI
perl "%~dp0tasks_gui_live.pl"
pause
  • Python läuft im Hintergrund
  • GUI startet sofort
  • Live-Aktualisierung funktioniert automatisch
Zitat:Hinweis:
Code:
start python
öffnet ein neues Konsolenfenster für Python.
Alternativ kann
Code:
pythonw
genutzt werden, damit kein Fenster angezeigt wird.

5️⃣ Vorteile der Live-Version
  • Automatische Aufgabenaktualisierung durch Python
  • Echtzeit-Anzeige in Perl Tk GUI
  • Interaktivität: Aufgaben abhaken, neue Aufgaben hinzufügen
  • Plattformübergreifendes Datenformat: JSON bleibt zentral
  • Erweiterbar: z. B. mehrere Python-Skripte gleichzeitig laufen lassen

6️⃣ Optionaler Ausbau
  • Filter: offene vs erledigte Aufgaben
  • Sortierung nach Zeit / Priorität
  • Python kann Web-Daten einlesen → Aufgaben automatisch generieren
  • GUI Buttons für „Alle Aufgaben erledigen“ oder „Aufgabe löschen“
  • Logging in eine separate Datei für Historie

Wenn du willst, kann ich als Nächstes noch eine komplette Version bauen, in der mehrere Python-Skripte parallel laufen und GUI automatisch alle Updates sofort zeigt – quasi ein kleines Task-Management-Framework für Windows in Perl + Python.
Willst du, dass ich das erstelle?
Zitieren Return to top


Nachrichten in diesem Thema
C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 2 Stunden

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste