Vor 3 Stunden
Oh ja, bitte dieses Beispiel zeigen.
Zitat:Super! Ich erstelle dir jetzt ein komplettes, praxisnahes Beispiel, das Python und C# kombiniert.
Ziel:Damit siehst du wie beide Welten zusammenarbeiten, Schritt für Schritt.
- Python-Skript erzeugt Daten (z. B. eine Liste von Aufgaben oder Notizen).
- C#-GUI liest diese Daten ein und zeigt sie übersichtlich in einem Fenster an.
- Du kannst die Liste in C# erweitern und wieder als JSON speichern, sodass Python sie erneut lesen könnte.
1️⃣ Python-Skript:
Code:tasks.py
import json
import os
file_path = "tasks.json"
# Beispiel-Daten, falls Datei nicht existiert
if not os.path.exists(file_path):
tasks = [
{"task": "Einkaufen", "done": False},
{"task": "Python lernen", "done": True}
]
with open(file_path, "w") as f:
json.dump(tasks, f, indent=4)
# Lies vorhandene Aufgaben
with open(file_path, "r") as f:
tasks = json.load(f)
# Ausgabe in Konsole (optional)
for t in tasks:
status = "✓" if t["done"] else "✗"
print(f"{status} {t['task']}")
- Dieses Skript erzeugt die Datei
Code:tasks.json
- Enthält Aufgaben im JSON-Format
- Zeigt sie in der Konsole an (optional)
2️⃣ C#-GUI-Projekt (WinForms) –
2.1 ProjektstrukturCode:TasksReader
2.2 Form1.cs – GUI-CodeCode:TasksReader/
├─ TasksReader.csproj
├─ Program.cs
├─ Form1.cs
└─ Form1.Designer.cs
Code:using System;
using System.IO;
using System.Text.Json;
using System.Collections.Generic;
using System.Windows.Forms;
namespace TasksReader
{
public partial class Form1 : Form
{
private string jsonFile = "tasks.json";
public Form1()
{
InitializeComponent();
LoadTasks();
}
private void LoadTasks()
{
if (!File.Exists(jsonFile))
{
MessageBox.Show("Keine Aufgaben gefunden. Bitte zuerst das Python-Skript ausführen.");
return;
}
string json = File.ReadAllText(jsonFile);
var tasks = JsonSerializer.Deserialize<List<TaskItem>>(json);
listBox1.Items.Clear();
foreach (var t in tasks)
{
string status = t.done ? "✓" : "✗";
listBox1.Items.Add($"{status} {t.task}");
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
return;
List<TaskItem> tasks = new List<TaskItem>();
if (File.Exists(jsonFile))
{
string json = File.ReadAllText(jsonFile);
tasks = JsonSerializer.Deserialize<List<TaskItem>>(json);
}
tasks.Add(new TaskItem { task = textBox1.Text, done = false });
string updated = JsonSerializer.Serialize(tasks, new JsonSerializerOptions { WriteIndented = true });
File.WriteAllText(jsonFile, updated);
textBox1.Clear();
LoadTasks();
}
}
public class TaskItem
{
public string task { get; set; }
public bool done { get; set; }
}
}
2.3 Form1.Designer.cs – GUI-Elemente
Ziehe in Visual Studio auf die Form:Button mit Event verbinden:
- ListBox →
Code:listBox1
- TextBox →
Code:textBox1
- Button →
→ Text = „Hinzufügen“Code:btnAdd
Code:btnAdd.Click += new EventHandler(btnAdd_Click);
3️⃣ So funktioniert das Zusammenspiel
- Python-Skript
erzeugtCode:tasks.py
.Code:tasks.json
- C#-GUI liest
ein und zeigt Aufgaben in einer ListBox an.Code:tasks.json
- Du kannst in der GUI neue Aufgaben hinzufügen → JSON wird aktualisiert.
- Python kann die Datei erneut lesen oder bearbeiten.
4️⃣ Vorteile dieses Ansatzes
- Python bleibt für Datenverarbeitung, Skripte und Automation zuständig.
- C# übernimmt die komfortable GUI auf Windows.
- JSON als gemeinsames Austauschformat → plattform- und sprachübergreifend.
- Leicht erweiterbar: Checkboxen, Filter, Sortierung, Aufgaben löschen.
5️⃣ Optionaler Ausbau
- Aufgaben als erledigt markieren (Checkbox in ListBox)
- Python-Skript erweitert Aufgaben automatisch (z. B. Web-Abfrage, Kalender)
- Mehrere JSON-Dateien verwalten
- GUI verbessert mit WPF oder MAUI
Wenn du willst, kann ich dir noch ein fertiges kleines Projekt bauen, das Python- und C#-Code direkt beim Start verbindet, sodass das GUI automatisch das Python-Skript ausführt und die Daten lädt – ein voll integriertes Mini-Task-Manager-Tool.
Willst du, dass ich das erstelle?

