Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Allgemein] -  C# vs Python
#14
Puh, ja, das hört sich interessant an. Bitte zeigen.

Zitat:Alles klar! Dann bauen wir jetzt ein komplettes kleines Task-Management-Framework für Windows, bei dem mehrere Python-Skripte parallel Aufgaben erzeugen, und die Perl Tk GUI live alle Updates sofort anzeigt.
Ziel:
  • Mehrere Quellen (Python-Skripte) können Aufgaben erzeugen
  • GUI zeigt alles automatisch und interaktiv
  • JSON ist zentrales Datenformat
  • Alles läuft unter Windows 11

1️⃣ Projektstruktur
Code:
TaskManagerFramework/

├─ tasks_gui_framework.pl     ← Perl Tk GUI mit Live-Refresh
├─ tasks_update_1.py          ← Python Skript 1 (z. B. automatische Aufgaben)
├─ tasks_update_2.py          ← Python Skript 2 (z. B. zeitgesteuerte Erinnerungen)
├─ tasks.json                 ← Gemeinsame Aufgaben-Datei
├─ run_task_manager.bat       ← Batch-Datei zum Starten aller Skripte und GUI
└─ README.md

2️⃣
Code:
tasks_update_1.py
– Automatische Aufgaben alle 10 Sekunden
Code:
import json
import os
import datetime
import time
json_file = "tasks.json"
while True:
    if not os.path.exists(json_file):
        tasks = []
    else:
        with open(json_file, "r") as f:
            tasks = json.load(f)
   
    timestamp = datetime.datetime.now().strftime("%H:%M:%S")
    tasks.append({"task": f"AutoTask1 {timestamp}", "done": False})
   
    with open(json_file, "w") as f:
        json.dump(tasks, f, indent=4)
   
    print(f"[Python1] Aufgabe hinzugefügt: AutoTask1 {timestamp}")
    time.sleep(10)

3️⃣
Code:
tasks_update_2.py
– Erinnerungsaufgaben alle 15 Sekunden
Code:
import json
import os
import datetime
import time
json_file = "tasks.json"
while True:
    if not os.path.exists(json_file):
        tasks = []
    else:
        with open(json_file, "r") as f:
            tasks = json.load(f)
   
    timestamp = datetime.datetime.now().strftime("%H:%M:%S")
    tasks.append({"task": f"ReminderTask {timestamp}", "done": False})
   
    with open(json_file, "w") as f:
        json.dump(tasks, f, indent=4)
   
    print(f"[Python2] Aufgabe hinzugefügt: ReminderTask {timestamp}")
    time.sleep(15)

4️⃣
Code:
tasks_gui_framework.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");
sub load_tasks {
    open my $fh, "<", $json_file or return [];
    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;
}
my $mw = MainWindow->new;
$mw->title("Task Manager Framework");
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);
$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);
$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;

5️⃣
Code:
run_task_manager.bat
– Batch-Datei
Code:
@echo off
REM Starte alle Python-Skripte im Hintergrund
start python "%~dp0tasks_update_1.py"
start python "%~dp0tasks_update_2.py"
REM Starte die Perl Tk GUI
perl "%~dp0tasks_gui_framework.pl"
pause
  • Python-Skripte laufen parallel
  • GUI startet sofort
  • Alle Änderungen werden live angezeigt

6️⃣ Vorteile des Frameworks
  • Mehrere Python-Skripte gleichzeitig erzeugen Aufgaben
  • Perl Tk GUI zeigt alles live
  • Interaktiv: Benutzer kann Aufgaben abhaken oder neue hinzufügen
  • JSON als zentrales Austauschformat
  • Erweiterbar: zusätzliche Skripte, Filter, Prioritäten, Logging

7️⃣ Erweiterungsmöglichkeiten
  • Sortierung und Filter in GUI
  • Mehrere GUI-Fenster für verschiedene Projekte
  • Python-Skripte können Webdaten oder lokale Events einlesen
  • Historie von erledigten Aufgaben speichern
  • Drag & Drop oder Farbcodierung in Perl Tk

Wenn du willst, kann ich als nächsten Schritt eine Version bauen, die automatisch alle erledigten Aufgaben archiviert und nur offene Aufgaben in der GUI anzeigt – quasi ein vollständiges Task-Management-System in Echtzeit.
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