Programmiersprache – die neusten Beiträge

(Coding) Wie füge ich in Ren'py einen Text zu meiner Gallerie/Glossar hinzu?

Hallo zusammen,

bin relativ neu in der Coding-Welt und habe wie im Titel bereits gesagt, Probleme dabei einen Text zu meinem Bild hinzuzufügen.
Der Text sollte auftauchen, wenn ich auf das Bild klicke.

Das ist mein gallery_setup Code:

init python:

    class GalleryItem:

        def __init__(self, name, images, locked="locked"):

            self.name = name

            self.images = images

            self.locked = locked

            self.refresh_lock()

        def refresh_lock(self):

            self.num_unlocked = 0

            lockme = False

            for img in self.images:

                if not renpy.seen_image(img):

                    lockme = True

                else:

                    self.num_unlocked += 1

            self.is_locked = lockme

    gallery_items = []

    gallery_items.append(GalleryItem("Stacy - What if", ["img1"] ))

#gallery background

image gray = "#777"

#gallery images

image img1 = ("images/karten/tanz.png")
_____________________________________________________________________

Da ich wie gesagt, noch kaum Erfahrung beim Coding habe, hoffe ich, dass dies das richtige Script ist. Ich habe noch ein "Gallery" Script, dass ich nicht verstehe, und bei dem ich aber auch nicht glaube, dass ich dort was im Code ändern muss. Vielleicht im "Screen"Script dachte ich mir noch, wenn ja betroffene Stelle wäre das:

        textbutton _("Load") action ShowMenu("load")

        textbutton _("Gallery") action ShowMenu("gallery_B")

        textbutton _("Preferences") action ShowMenu("preferences")

_________________________________________________________

tut mir leid, falls das Mau ist, aber ich weiß nicht, was sonst noch nützlich sein könnte, abgesehen von den angehängten Bildern noch.

vielen dank im voraus

Bild zum Beitrag
Code, Programmiersprache, Python

Warum versucht meine Flutter-Webanwendung, auf den Pfad assets/assets/data/ zuzugreifen?

Guten Tag,

ich verzweifel an meinem Problem in Flutter.

Irgendwie denkt das System, dass es die Dateien von assets/assets/data abrufen will, da findest es aber logischerweise nichts. Ich habe auch schon assets/assets/data erstellt. Das klappt aber trotzdem nicht. Ich schaue die Daten von Kaufda und lasse sie dann durch einen Prompt gehen.

Ich würde mich über jegliche Hilfe sehr freuen.

PS C:\Users\Roman\Documents\grocify> flutter run

┌─────────────────────────────────────────────────────────┐
│ A new version of Flutter is available!         │
│                            │
│ To update to the latest version, run "flutter upgrade". │
└─────────────────────────────────────────────────────────┘
Connected devices:
Windows (desktop) • windows • windows-x64  • Microsoft Windows [Version 10.0.22631.5335]
Chrome (web)   • chrome • web-javascript • Google Chrome 137.0.7151.69
Edge (web)    • edge  • web-javascript • Microsoft Edge 137.0.3296.68
[1]: Windows (windows)
[2]: Chrome (chrome)
[3]: Edge (edge)
Please choose one (or "q" to quit): 3
Launching lib\main.dart on Edge in debug mode...
Waiting for connection from debug service on Edge...       33,7s
This app is linked to the debug service: ws://127.0.0.1:51604/0RlY6LXJOKQ=/ws
Debug service listening on ws://127.0.0.1:51604/0RlY6LXJOKQ=/ws
 To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".
A Dart VM Service on Edge is available at: http://127.0.0.1:51604/0RlY6LXJOKQ=
🔑 OPENAI API Key geladen: true
The Flutter DevTools debugger and profiler on Edge is available at: http://127.0.0.1:9101?uri=http://127.0.0.1:51604/0RlY6LXJOKQ=
ERROR - 2025-06-22 14:01:37.181584
GET /assets/assets/data/file_index.json
Error thrown by handler.
Bad state: No element
dart:isolate _RawReceivePort._handleMessage
Error while trying to load an asset: Flutter Web engine failed to fetch "assets/assets/data/file_index.json". HTTP request succeeded, but the server
responded with HTTP status 500.
❌ Fehler beim Laden der Rezepte: Unable to load asset: "assets/data/file_index.json".
The asset does not exist or has empty data.
❌ Fehler beim Laden der Rezepte: Unable to load asset: "assets/data/file_index.json".
The asset does not exist or has empty data.
Application finished.
PS C:\Users\Roman\Documents\grocify> name: grocify
description: "Smartes Einkaufs- & Rezept-Tool"
publish_to: 'none'
version: 1.0.0+1
environment:
 sdk: ">=3.7.0 <4.0.0"
dependencies:
 flutter_dotenv: ^5.0.2
 flutter:
  sdk: flutter
  
 cupertino_icons: ^1.0.8
 google_fonts: ^6.1.0
  
dev_dependencies:
 flutter_test:
  sdk: flutter
 flutter_lints: ^3.0.1
flutter:
 uses-material-design: true
 assets:
  - assets/data/
  - assets/images/
  - assets/images/food.png.png
  - .env
Webseite, Code, Programmiersprache

C# Bilder zu sehr großen PNGs zusammenfügen?

Ich habe Tiles von Karten und möchte diese zu einem einzelnen Bild zusammenfügen. Jedes Tile hat eine Auflösung von 256 x 256 Pixeln. Es soll ein PNG sein. Dazu habe ich Bitmaps genutzt, diese stoßen aber nun an ihre Grenzen. Bis zu einer gewissen Auflösung funktioniert das einwandfrei. Das ist der Code:

Bitmap merged = new Bitmap(width, height);

using (Graphics graphics = Graphics.FromImage(merged))
{
    for (int x = 0; x < this.Bounds[1] - this.Bounds[0] + 1; x++)
    {
        for (int y = 0; y < this.Bounds[3] - this.Bounds[2] + 1; y++)
        {
            Image image = Image.FromFile(string.Format("{0}{1}-{2}.png", tilePath, x, y));

            graphics.DrawImage(image, x * 256, y * 256);

            image.Dispose();
        }
    }

    merged.Save(string.Format("{0}\\map.png-merging", outputPath), System.Drawing.Imaging.ImageFormat.Png);
}

File.Move(string.Format("{0}\\map.png-merging", outputPath), string.Format("{0}\\map.png", outputPath));

Es geht bis zur Auflösung 10, bei der es 58 x 56 Tiles, also 14.848 x 14.336 Pixel gibt.

Danach sind es 97 x 110 Tiles, also 24.832 x 28.160 Pixel. Hier kommt es zu einem Fehler. Bei

Bitmap merged = new Bitmap(width, height);

gibt es eine ArgumentException. Ich habe gelesen, dass das Limit für Bitmaps gibt, das ich hier anscheinend überschreibe.

Wie kann ich die Tiles am besten zu einer sehr großen PNG zusammenfügen, außer damit, die PNG mit einem FileStream Byte für Byte selbst zu erstellen?

Bilder, programmieren, Grafik, C Sharp, Code, Programmiersprache, Visual Studio, Bitmap

Was muss ich an meinem Arduino-Programm ändern?

Was ist falsch an meinem Arduino-Programm?

Bis jetzt bewirkt es, dass, wenn man die Taste 2 oder A drückt, die rote LED leuchtet und ein nehativer Ton erklingt. Mehr nicht.

Eigntlich soll die Schaltung so funktioneren, dass, wenn man den Code 2009 eingibt, die grüne LED leuchtet, ein fröhlicher Ton aus dem Buzzer erklingt und der Servo sich für 50 Sekunden um 90 Grad öffnet. Sollte man den Code falsch eingeben, leuchtet die rote LED, ein negativer Ton erklingt und der Servo bleibt verschlossen.

#include <Keypad.h>
#include <Servo.h>

#define Buzzer 11

Servo Servo;

int roteLED = 12;
int grueneLED = 13;

void setLocked(bool locked)
{
  if (locked) {
    digitalWrite(roteLED, HIGH);
    digitalWrite(grueneLED, LOW);
    Servo.write(0);
    tone(Buzzer, 400, 500);
    delay(500);
    noTone(Buzzer);
    digitalWrite(roteLED, LOW);
  }
  else {
    digitalWrite(roteLED, LOW);
    digitalWrite(grueneLED, HIGH);
    Servo.write(90);
    tone(Buzzer, 1000, 200);
    delay(250);
    tone(Buzzer, 1500, 200);
    delay(250);
    tone(Buzzer, 2000, 200);
    delay(250);
    noTone(Buzzer);
    delay(50000);
    Servo.write(0);
  }
}

int position = 0;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte colPins[COLS] = {2, 3, 4, 5};
byte rowPins[ROWS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const char code[5] = "2009";

void setup()
{
  pinMode(roteLED, OUTPUT);
  pinMode(grueneLED, OUTPUT);
  pinMode(Buzzer, OUTPUT);
  Servo.attach(10);
  setLocked(true);
}

void loop()
{
  const char key = keypad.getKey();

  if (key == '*'||key == '#') {
    position = 0;
    setLocked(true);
  }

  if (key == code[position]) {
    position++;
  }
  else
    position = 0;

  if (position == 4) {
    setLocked(false);
  }

  delay(100);
}
Arduino, Code, Programmiersprache, Arduino Uno, Arduino IDE

Arduino programm fehler?

Guten Tag,

Ich hätte eine Frage bezüglich meinem Arduino Programmes, unzwar möchte ich, dass die Schaltung so funktiomiert, dass man Auf dem keypad den code 2009 eingeben musst Macht man dies richtig leuchtet die grüne LED, ein fröjlicher Ton ertönt aus dem Buzzer und der Servo öffnet die Tür.

Sollte mam einen falschen code eingeben leichtet die rote LED ein negativer Ton erklingt und der Serbo bewegt sich nicht.

Was habe ich falsch gemacht wie muss das Programm eigntlich aussehen?

Mit Arduino version 1.13.8

Programm:

#include <Keypad.h>
#include <Servo.h>

#define Buzzer 11

Servo myServo;
char password= "2009";
int position=0;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
 {'1', '2', '3', 'A'},
 {'4', '5', '6', 'B'},
 {'7', '8', '9', 'C'},
 {'*', '0', '#', 'D'}
};
byte colPins[COLS] = {2, 3, 4, 5};
byte rowPins[ROWS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
int roteLED = 12;
int grueneLED = 13;
char code[5] = "2009";

void setup() {
 pinMode(roteLED, OUTPUT);
 pinMode(grueneLED, OUTPUT);
 pinMode(Buzzer, OUTPUT);
 myServo.attach(10);
 setLocked(true);
}

void loop() {
 char key = keypad.getKey();
 if (key == '*'||key == '#')
 {
  position = 0;
  setLocked(true);
 }
 if (key == code[position])
 {
  position++;
 }
 if(position == 4){
 setLocked(false);
}
delay(100);
}

void setLocked(int locked)
{
 if (locked)
 {
  digitalWrite(roteLED, HIGH);
  digitalWrite(grueneLED, LOW);
  myServo.write(90);
  tone(Buzzer, 1000, 200);
  delay(250);
  tone(Buzzer, 1500, 200);
  delay(250);
  tone(Buzzer, 2000, 200);
  delay(250);
  noTone(Buzzer);
 }
 else
 {
  digitalWrite(roteLED, LOW);
  digitalWrite(grueneLED, HIGH);
  myServo.write(0);
  tone(Buzzer, 400, 500);
  delay(500);
  noTone(Buzzer);
 }
}
Arduino, Code, Programmiersprache, Arduino Uno, Arduino IDE

Entscheidungsmodell (KI) - Phyton?

Heyy,

Ich arbeite gerade an meiner Maturaarbeit und entwickle dafür ein Entscheidungsmodell bzw. einen Autopiloten, der auf einer Art KI basiert.

Ich will das Ganze zuerst in einer virtuellen Umgebung programmieren, wo man dann auch visuell sehen kann, wie das Fahrzeug auf Hindernisse reagiert, also z. B. ausweicht oder abbremst.

Der Code für die Simulation muss nicht derselbe sein wie derjenige, den ich später vielleicht auf einen physischen Roboter übertrage (z. B. Maqueen oder ähnliches; einfach aus Interesse - werde es vermutlich nicht erwähnen in meiner Arbeit).

Meine Frage an euch:

Kennt ihr gute Programme (mit Phyton), Tools, Webseiten oder Umgebungen, mit denen man so eine einfache virtuelle Simulation mit Hindernissen und Fahrzeugbewegungen machen kann? Ich habe bereits trinket für 2D-Darstellungen verwendet, aber das finale Produkt sollte anspruchsvoller (und hübscher) aussehen.

Und: Gibt es vielleicht Plattformen, anhand jener man den Code später auch auf einen echten kleinen Roboter übertragen kann (z. B. Maqueen)?

Mir geht es ausnahmsweise nicht wirklich um eine gute Note. Ich mag Informatik (als einziges MINT-Fach) nicht, habe das Thema aber gewählt, damit ich etwas Neues lerne, statt immer nur den gemütlichen Weg zu gehen.

Bin dankbar für jeden Tipp.✨

Webseite, Roboter, programmieren, künstliche Intelligenz, Programmiersprache, Python, Simulation, Tool, Autopilot, maturaarbeit

Verkettete Listen in Java CD?

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.LinkedList;
import java.util.Random;

public class PlaylistReader {
    public static void main(String[] args) {
        LinkedList<Titel> playlist = new LinkedList<Titel>();
        BufferedReader br = null;
        
        try {
            br = new BufferedReader(new FileReader("titel.txt"));
            String name = br.readLine(); // Name der CD aus erster Zeile
            String line = "";
            while ((line = br.readLine()) != null) {
                String[] parts = line.split(";");
                int cdNr = Integer.parseInt(parts[0].replaceAll("\\D+", ""));
                int trackNr = Integer.parseInt(parts[1]);
                String interpret = parts[2];
                String title = parts[4];
                String duration = parts[5];
                
                Titel t = new Titel(cdNr, trackNr, interpret, name, title, duration);
                playlist.add(t);
            }
            br.close();
            Random rand = new Random();
            int index = rand.nextInt(playlist.size());
            Titel zufallstitel = playlist.get(index);
            System.out.println(zufallstitel.getName());
            System.out.println("CD " + zufallstitel.getCdNr());
            System.out.println("Titel Nr.: " + zufallstitel.getTrackNr());
            System.out.println("Interpret: " + zufallstitel.getInterpret());
             System.out.println("Titel: " + zufallstitel.getTitle());
            System.out.println("Spielzeit: " + zufallstitel.getDuration());
        } catch (Exception e) {
            System.out.println("Fehler beim Einlesen der Datei: " + e.getMessage());
        }
    }
}

public class Titel {
    private int cdNr;
    private String duration;
    private String interpret;
    private String name;
    private String title;
    private int trackNr;

    public Titel(int cdNr, int trackNr, String interpret, String name, String title, String duration) {
        this.cdNr = cdNr;
        this.trackNr = trackNr;
        this.interpret = interpret;
        this.name = name;
        this.title = title;
        this.duration = duration;
    }

    public int getCdNr() {
        return cdNr;
    }
    public void setCdNr(int cdNr) {
        this.cdNr = cdNr;
    }
    
    public String getDuration() {
        return duration;
    }
    
    public void setDuration(String duration) {
        this.duration = duration;
    }
    
    public String getInterpret() {
        return interpret;
    }

    public void 
        setInterpret(String interpret) {
        this.interpret = interpret;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
   
    public int getTrackNr() {
        return trackNr;
    }

    public void setTrackNr(int trackNr) {
        this.trackNr = trackNr;
    }
}
Java, Programmiersprache

Wie kann ich zwei MFRC522-RFID-Reader gleichzeitig mit einem Raspberry Pi 3 Model B verwenden?

Hallo zusammen,

ich versuche seit über einem Monat, zwei MFRC522-RFID-Reader gleichzeitig mit meinem Raspberry Pi 3 Model B (Version 1.2) zu betreiben, leider ohne Erfolg.

Mein Ziel ist es, dass beide Reader parallel arbeiten und unabhängig voneinander Tags erkennen und auslesen können. Ich verwende Python mit dem

spidev

-Modul und habe jedem Reader eine eigene SPI-Schnittstelle zugewiesen:

  • Reader 1: SPI0 (Bus 0, Device 0), RST auf GPIO25
  • Reader 2: SPI1 (Bus 1, Device 0), RST auf GPIO17

Beide Reader sind korrekt verkabelt. SPI1 ist über Device Tree aktiviert, und ich verwende keine gemeinsamen CS-Pins. Ich habe eine eigene Klasse für MFRC522 geschrieben, um jeweils ein SPI-Device und einen RST-Pin zu verwenden. Hier ist der relevante Python-Code:

python
import spidev
import RPi.GPIO as GPIO
import time


class MFRC522:
    def __init__(self, spi_bus, spi_device, rst_pin):
        self.spi = spidev.SpiDev()
        self.spi.open(spi_bus, spi_device)
        self.spi.max_speed_hz = 1000000
        self.spi.mode = 0
        self.rst = rst_pin


        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(self.rst, GPIO.OUT)
        GPIO.output(self.rst, 1)
        self.reset()


    def reset(self):
        GPIO.output(self.rst, 0)
        time.sleep(0.1)
        GPIO.output(self.rst, 1)
        time.sleep(0.1)


    def send(self, addr, val):
        self.spi.xfer2([(addr << 1) & 0x7E, val])


    def read(self, addr):
        val = self.spi.xfer2([((addr << 1) & 0x7E) | 0x80, 0])
        return val[1]


    def scan_for_tag(self):
        self.send(0x01, 0x0C)  # PCD_TRANSCEIVE
        self.send(0x0D, 0x87)  # BitFramingReg


        self.send(0x0C, 0x26)  # Request idle
        time.sleep(0.01)
        return self.read(0x0A) != 0  # FIFOLevelReg


    def get_uid(self):
        self.send(0x0D, 0x87)
        self.spi.xfer2([0x93, 0x20])  # Anticollision
        time.sleep(0.01)
        resp = self.spi.xfer2([0x93, 0x20] + [0]*5)
        uid = resp[2:6]
        return ':'.join([hex(x)[2:].upper().zfill(2) for x in uid])


    def cleanup(self):
        self.spi.close()
        GPIO.cleanup(self.rst)


# Konfiguration der Reader
reader1 = MFRC522(spi_bus=0, spi_device=0, rst_pin=25)  # SPI0
reader2 = MFRC522(spi_bus=1, spi_device=0, rst_pin=17)  # SPI1


try:
    print("Starte RFID-Scanner (STRG+C zum Beenden)")
    while True:
        if reader1.scan_for_tag():
            uid1 = reader1.get_uid()
            print(f"Reader 1 UID: {uid1}")


        if reader2.scan_for_tag():
            uid2 = reader2.get_uid()
            print(f"Reader 2 UID: {uid2}")


        time.sleep(0.5)


except KeyboardInterrupt:
    print("\nBeende...")


finally:
    reader1.cleanup()
    reader2.cleanup()


Das Problem: Keiner der beiden Reader erkennt zuverlässig Tags. Der zweite reagiert manchmal, oft aber gar nicht oder liefert keine UID. Ich habe bereits unterschiedliche Polling-Intervalle, Resets und sogar die Versorgungsspannung überprüft, aber ohne Erfolg.
so habe ich meine MFRC522 Reader angeschlossen:

Hat jemand Erfahrung damit oder Ideen, wie ich beide MFRC522 zuverlässig gleichzeitig betreiben kann? Gibt es vielleicht Timing-Probleme, Konflikte zwischen den SPI-Bussen oder brauche ich spezielle Initialisierung?

Ich bin für jede Hilfe dankbar!

Bild zum Beitrag
Code, Programmiersprache, Python, RFID, RFID-Chip, Raspberry Pi, ChatGPT

HTML Website - Kontaktformular zurücksetzen nach Abschicken?

Hallo zusammen,

ich will, dass mein Kontaktformular nach dem Abschicken wieder zurückgesetzt wird mithilfe von Javascript. Leider kenne ich mich mit Javascript null aus und ChatGPT findet hierfür auch kein Skript, dass bei mir funktioniert (oder ich bin einfach zu dumm das korrekt im html Code einzufügen )

Folgend die HTML-Seite dazu. (Head hab ich weggelassen, da sonst zu viele Zeichen)

    <body>
        <header>
            <h1>
                <div class="logo">
                    <a href="index.html"><img src="bilder/Logo_Tierhilfe.png"></a>
                </div>
                Tierhilfe Europa e.V. - Mitglied werden
            </h1>


            <nav>
                <ul>
                    <li><a href="index.html">Startseite</a></li>
                    
                    <li><a href="ueber-uns.html">Über uns</a></li>
                        
                    <li class="dropdown">
                        <a href="unterstuetzung.html">Unterstütze uns</a>
                            <ul class="dropdown-content">
                                <li><a href="mitglied_werden.html">Mitglied werden</a></li>
                                <li><a href="spenden.html">Spenden</a></li>
                            </ul>
                    </li>
                </ul>
            </nav>
        </header>
        
        <main class="background">
            <div class="container">
                <h3>Mitglied werden - jetzt registrieren</h3>
                <h6>*Pflichtfelder</h6>
                <br>
                <div class="aufzaehlung">
                    <form>
                        <label for="mail">*E-Mail:</label>
                            <input type="email"name="input_mail_field"id="mail" required>
                                <br>


                        <label for="username">*Benutzername:</label>
                            <input type="text"name="input_username_field"id="username" required>
                                <br>


                        <label for="birthday">Geburtsdatum:</label>
                            <input type="date"name="input_birthday_field"id="birthday">
                                <br>


                        <label for="password">*Passwort:</label>
                            <input type="password"name="input_password_field"id="password" required>
                                <br>


                        <label for="confirmpassword">*Passwort bestätigen:</label>
                            <input type="password"name="input_confirm_password_field"id="confirmpassword" required>
                                <br>


                        <label for="sex">Geschlecht: </label>
                            <select type="select" name="input_sex_field" id="sex">
                                <option>keine Angabe</option>
                                <option>Männlich</option>
                                <option>Weiblich</option>
                            </select>
                                <br>


                        <label for="checkdataprotection">*Ich akzeptiere die <a href="datenschutz.html">Datenschutzbestimmungen von Tierhilfe Europa e.V.: </a></label>
                            <input type="checkbox" name="check_data_protection" id="checkdataprotection" required>
                                <br>
                                <br>
                                <br>


                        <input type="reset" name="reset_field" id="reset" value="Zurücksetzen">
                        <input type="submit" name="submit_field" id="submit" value="Absenden">
                                <br>
                    </form>
                </div>
            </div>
        </main>


<script>
    const form = document.querySelector("form");


    form.addEventListener("submit", function(event) {
        event.preventDefault(); // verhindert echtes Absenden


        alert("Vielen Dank! Dein Formular wurde erfolgreich abgeschickt. Du erhältst in Kürze eine Bestätigung per E-Mail von uns.");


        // Wichtiger Trick, damit das Reset nach dem Alert wirklich ausgeführt wird
        setTimeout(() => {
            form.reset();
        }, 0);
    });
</script>


        <a title="Zurück nach oben" class="back-to-top" href="#top">&#8593</a>



        <footer>
            <p>&copy; 2025 Tierhilfe Europa e.V. </p>
            <a href="datenschutz.html">Datenschutz</a>
            <a href="impressum.html">Impressum</a>
        </footer>


    </body>
        
</html>

Hat jemand von euch einen Tipp, wie ich das mit Javascript machen muss, damit das Formular nach dem Absenden automatisch zurückgesetzt wird?

Sonstige Tipps zu meinem HTML nehme ich auch dankend an. :-)

Liebe Grüße

HTML, Webseite, Programmiersprache, Webdesign, Webentwicklung

datei mit namen deps.js und DATUM 01.01.2098 gefunden?

mit dem Editor die 3,72MB recht große Datei mal angeschaut - ganz am Ende steht was von Amazon. Für was ist das gut?

 Copyright 2014 Amazon.com,
 * Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Amazon Software License (the "License").
 * You may not use this file except in compliance with the
 * License. A copy of the License is located at
 * 
 *   http://aws.amazon.com/asl/
 * 
 * or in the "license" file accompanying this file. This file is
 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, express or implied. See the License
 * for the specific language governing permissions and
 * limitations under the License. 
 */
if(void 0===e)throw new Error("AWS SDK must be loaded before loading the Sync Manager.");var t,r,a,i,s,o,n,u,p;e.CognitoSyncManager=function(t){t=t||{};this.provider=t.credentials||e.config.credentials,this.identityPoolId=this.provider.params.IdentityPoolId,this.region=t.region||e.config.region,this.logger=t.log,"function"!=typeof this.logger&&(this.logger=function(){}),this.local=new e.CognitoSyncManager.LocalStorage({DataStore:t.DataStore?t.DataStore:e.CognitoSyncManager.StoreLocalStorage}),this.remote=new e.CognitoSyncManager.RemoteStorage({identityPoolId:this.identityPoolId,provider:this.provider,region:this.region}),this.remote.setUserAgent("CognitoJavaScriptSDK/1")},e.CognitoSyncManager.prototype.openOrCreateDataset=function(t,r){var a=this,i=new RegExp("^[a-zA-Z0-9_.:-]{1,128}$");i.test(t)?this.local.createDataset(this.getIdentityId(),t,function(t,i){if(t)return r(t,null);r(null,new e.CognitoSyncManager.Dataset(i,a.provider,a.local,a.remote,a.logger))}):r(new Error("Dataset name must match the pattern "+i.toString()))},e.CognitoSyncManager.prototype.listDatasets=function(e){this.local.getDatasets(this.getIdentityId(),e)},e.CognitoSyncManager.prototype.refreshDatasetMetadata=function(e){var t=this;this.remote.getDatasets(function(r,a){var i=[],s=function(e){t.local.updateDatasetMetadata(t.getIdentityId(),e,o)},o=function(t,r){i.push(r),a.length>0?s(a.shift()):e(null,i)};a.length>0?s(a.shift()):e(null,[])})},e.CognitoSyncManager.prototype.wipeData=function(){this.provider.clearCachedId(),this.local.wipeData()},e.CognitoSyncManager.prototype.getIdentityId=function(){return this.provider.identityId},(e=e||{}).CognitoSyncManager=e.CognitoSyncManager||
JavaScript, Code, Programmiersprache

Betreff: Desktop-App (Mac/Win) mit Qt & komplexer UI – Python oder C++ für Hobby-Entwickler mit KI-Fokus?

allo zusammen,

ich plane eine persönliche Desktop-Aufgabenverwaltungs-App für Mac & Windows. Langfristig soll sie eine komplexe UI bekommen (Kanban-Board mit Drag & Drop, Kalender mit OS-Integration). Mein Hauptziel ist es, eine Technologie zu wählen, die das packt, um einen späteren kompletten Rewrite der GUI wegen Framework-Limitierungen zu vermeiden.

Nach viel Recherche habe ich mich für Qt als UI-Framework entschieden, da es die nötige Mächtigkeit und den Qt Designer (den ich gut finde) bietet.

Jetzt stehe ich aber vor der großen Frage: Soll ich Qt mit Python (PySide6) oder mit C++ nutzen?

Kurz zu meinem Hintergrund:

  • Ich entwickle als Hobby, nicht beruflich.
  • Ich setze sehr stark auf KI-Unterstützung für die konkrete Code-Erstellung.
  • Meine C++ Erfahrung ist minimal: Bei sehr kleinen Windows-Tools (mit WinAPI, nicht Qt) hat die KI den Code geschrieben, ich habe primär Fehler mit der KI behoben. Ich kann C++ also nicht wirklich.
  • Meine Go Erfahrung ist auch kaum vorhanden (nur mal ein Fyne-Fenster testweise).
  • Ich habe aber einen (von KI geschriebenen) Python-Backend-Dienst für eine andere iOS Swift App. Python ist also schon entfernt in meinem technischen Umfeld, und ich habe auch Interesse an Pentesting (wo Python nützlich ist).
  • Für die Aufgaben-App selbst ist ein Installer/Abhängigkeiten okay. (Der Wunsch nach kleinen, einzelnen 
  • .exe
  • -Dateien betrifft andere, zukünftige, kleine Windows-Tools, für die ich dann wahrscheinlich Go oder C++/WinAPI nehmen würde – das ist also ein getrenntes Thema.)

Meine Zwickmühle mit Python/Qt vs. C++/Qt:

  • Python/Qt (PySide6):
  • Pro: Bietet die volle Qt-Power. Python ist deutlich zugänglicher für mich als C++. Ich habe die genannten Synergien (anderer Dienst, Pentesting). Die KI kann mich bei Python/Qt sicher gut unterstützen, und der Qt Designer hilft beim UI-Bau.
  • Mein großes Problem: Ich habe einen hartnäckigen "faden Beigeschmack" / ein starkes Unbehagen, Python für GUI-Programmierung zu nutzen, auch wenn meine frühere Hauptsorge (Performance) bei Qt-GUIs wohl unbegründet ist.
  • C++/Qt:
  • Pro: Wäre Qt "nativ", und mein Python-GUI-Unbehagen wäre weg.
  • Meine große Sorge: Die extreme Lernkurve von C++ von meinem jetzigen Stand. Ich habe Angst, hier monatelang nur mit der Sprache zu kämpfen (auch mit KI) und nicht bei der App voranzukommen, was für mich "verschwendete Zeit" wäre.

Meine Frage an euch: Ich will jetzt "richtig anfangen" mit Version 0.0.1 meiner App (Fenster, Eingabe, Button, Liste). Was ratet ihr mir in dieser spezifischen Situation für den Start mit Qt? Sollte ich versuchen, meine Python-GUI-Aversion (mit viel KI-Hilfe und Fokus auf den Qt Designer) zu überwinden, um die Vorteile der zugänglicheren Sprache und der Synergien zu nutzen? Oder haltet ihr den Weg mit C++/Qt (trotz des immensen Lernaufwands für mich) für realistischer oder langfristig besser, um Qt ohne Python-GUI-Unbehagen zu nutzen? Mein Hauptziel bleibt, die App mit Kanban & Co. sicher umsetzen zu können, ohne in einer Sackgasse zu landen.

Vielen Dank für eure Einschätzungen!

CPP, künstliche Intelligenz, Programmiersprache, Python, Qt Creator

Meistgelesene Beiträge zum Thema Programmiersprache