Button in Flutter deaktiviert sich verzögert?

Moin,

ich habe hier eine Seite in Flutter programmiert. Man kann mit zwei Pfeilen (Elevated Buttons) steuern, welches Listenelement angezeigt werden soll. Ist das erste Element erreicht, soll der linke Pfeil ausgeblendet werden. Ist das letzte Element erreicht soll der rechte Button ausgeblendet werden. Das funktioniert auch einigermaßen. Man kann den Button dann direkt nicht mehr drücken, aber der Farbwechsel zu grau, passiert erst verzögert, was besonders stört, wenn man z.B. durch eine Bildergalerie schauen möchte. Ich kann mir leider nicht erklären warum und bin kurz davor die Farbe zusätzlich manuell grau zu machen. Das kann doch aber eigentlich nicht die Lösung sein...

import 'package:flutter/material.dart';


class ButtonProblem extends StatefulWidget {
  const ButtonProblem({
    super.key,
  });


  @override
  State<ButtonProblem> createState() => _ButtonProblemState();
}


class _ButtonProblemState extends State<ButtonProblem> {
  late int currentIndex;
  late List<int> list;
  @override
  void initState() {
    super.initState();
    //Liste zum durchgehen
    list = [0, 1, 2, 3, 4, 5, 6];
    currentIndex = 0;
  }


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Button Problem'),
        backgroundColor: Colors.blue,
        foregroundColor: Colors.white,
      ),
      body: Column(children: [
        SizedBox(
          height: 20,
        ),
        Text("currentIndex: ${currentIndex.toString()}"),
        Text("current list item: ${list[currentIndex].toString()}"),
        SizedBox(
          height: 20,
        ),
        Row(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            ElevatedButton(
              onPressed: currentIndex > 0 ? () => navigateToPrevious() : null,
              style: ElevatedButton.styleFrom(
                primary: Colors.blue,
                minimumSize: const Size(150, 50),
              ),
              child: const Icon(Icons.arrow_back, color: Colors.white),
            ),
            ElevatedButton(
              onPressed: (currentIndex < list.length - 1)
                  ? () => navigateToNext()
                  : null,
              style: ElevatedButton.styleFrom(
                primary: Colors.blue,
                minimumSize: const Size(150, 50),
              ),
              child: Icon(Icons.arrow_forward, color: Colors.white),
            ),
          ],
        ),
      ]),
    );
  }


  navigateToPrevious() {
    setState(() {
      currentIndex--;
    });
  }


  navigateToNext() {
    setState(() {
      currentIndex++;
    });
  }
}

Wäre dankbar für jede Hilfe :)

App, Android App, Dart, Programmiersprache, Flutter, Android Studio, Visual Studio Code
Übermittlung von Tradingview nach Bitget?
//@version=5
strategy("Market Long Position on Candle Close", overlay=true)


// Parameter
var float investmentUSD = 1000
var float contracts = na
var float positionSize = na


// Berechnung der Anzahl der Kontrakte basierend auf dem Schlusskurs
if (close != 0)
    contracts := investmentUSD / close


// Aktueller Preis
var float price = close
// Aktuelle Zeit (Unix-Timestamp)
var int timeNow = timenow


// Abfrage der aktuellen und vorherigen Marktposition
var string marketPosition = na
var string prevMarketPosition = na


// Feststellen der aktuellen Position
if (strategy.position_size > 0)
    marketPosition := "long"
else if (strategy.position_size < 0)
    marketPosition := "short"
else
    marketPosition := "flat"


// Setze die vorherige Position
prevMarketPosition := marketPosition
positionSize := strategy.position_size


// Bedingung: Bei jeder neuen Kerze (barstate.isconfirmed) wird eine Long-Market-Position eröffnet
if (barstate.isconfirmed and positionSize == 0)
    strategy.entry("Long", strategy.long, qty=contracts)


// Debugging: Anzeigen der aktuellen Parameter
label.new(bar_index, high, text="Aktion: buy" + 
   "\nKontrakte: " + str.tostring(contracts) + 
   "\nMarktposition: " + marketPosition + 
   "\nVorherige Marktposition: " + prevMarketPosition + 
   "\nPositionsgröße: " + str.tostring(positionSize) + 
   "\nEröffnungspreis: " + str.tostring(price) + 
   "\nSymbol: " + syminfo.tickerid + 
   "\nZeit: " + str.tostring(timeNow))


Hi, ich habe eine Tradingstrategie entwickelt und möchte sie mit meinem broker bitget verbinden. Ich bin bei Bitget auf den alarm-Button gegangen und habe die Webhook Adresse kopiert und in den Alarm bei Tradingview reinkopiert. Das gleiche habe ich mit der Nachricht gemacht. Die sieht wie folgt aus: 
"action":"{{strategy.order.action}}",
"contracts":"{{strategy.order.contracts}}",
"marketPosition":"{{strategy.market_position}}",
"positionSize":"{{strategy.position_size}}",
"prevMarketPosition":"{{strategy.prev_market_position}}",
"price":"{{close}}",
"symbol":"{{ticker}}",
"time":"{{timenow}}"

In meinem Testskript wird einfach jedesmal wenn eine Kerze geschlossen wird eine long Position eröffnet. Leider kommt bei Bitget nichts an. Woran kann das liegen?

Code, Programmiersprache, tradingview, Bitget
Python fehler code bei langen texten?
Ich habe einen Programm in python geschrieben import json
import os


class NotizManager:
    def __init__(self, datei_name="notizen.json"):
        self.datei_name = datei_name
        self.notizen = self.notizen_laden()

    def notizen_laden(self):
        # Lade Notizen aus der JSON-Datei, falls vorhanden
        if os.path.exists(self.datei_name):
            with open(self.datei_name, 'r') as file:
                return json.load(file)
        return []

    def notizen_speichern(self):
        with open(self.datei_name, 'w') as file:
            json.dump(self.notizen, file, indent=4)

    def notiz_hinzufuegen(self, thema, inhalt):
        self.notizen.append({'thema': thema, 'inhalt': inhalt})
        self.notizen_speichern()
        print(f'Notiz "{thema}" wurde hinzugefügt.')

    def alle_notizen_anzeigen(self):
        if not self.notizen:
            print("Es gibt keine gespeicherten Notizen.")
        else:
            for index, notiz in enumerate(self.notizen, start=1):
                print(f'{index}. Thema: {notiz["thema"]}\n   Inhalt: {notiz["inhalt"]}\n')

    def notiz_bearbeiten(self, index, neues_thema, neuer_inhalt):
        if 0 <= index < len(self.notizen):
            self.notizen[index]['thema'] = neues_thema
            self.notizen[index]['inhalt'] = neuer_inhalt
            self.notizen_speichern()
            print(f'Notiz {index + 1} wurde aktualisiert.')
        else:
            print("Ungültiger Index. Bitte gib einen gültigen Notizindex ein.")

    def notiz_loeschen(self, index):
        if 0 <= index < len(self.notizen):
            geloeschte_notiz = self.notizen.pop(index)
            self.notizen_speichern()
            print(f'Notiz "{geloeschte_notiz["thema"]}" wurde gelöscht.')
        else:
            print("Ungültiger Index. Bitte gib einen gültigen Notizindex ein.")


def hauptmenue():
    manager = NotizManager()

    while True:
        print("\n--- Notiz Manager ---")
        print("1. Notiz hinzufügen")
        print("2. Alle Notizen anzeigen")
        print("3. Notiz bearbeiten")
        print("4. Notiz löschen")
        print("5. Beenden")

        auswahl = input("Wähle eine Option (1-5): ")

        if auswahl == '1':
            thema = input("Thema der Notiz: ")
            inhalt = input("Inhalt der Notiz: ")
            manager.notiz_hinzufuegen(thema, inhalt)

        elif auswahl == '2':
            manager.alle_notizen_anzeigen()

        elif auswahl == '3':
            manager.alle_notizen_anzeigen()
            try:
                index = int(input("Gib den Index der Notiz ein, die du bearbeiten möchtest: ")) - 1
                neues_thema = input("Neues Thema: ")
                neuer_inhalt = input("Neuer Inhalt: ")
                manager.notiz_bearbeiten(index, neues_thema, neuer_inhalt)
            except ValueError:
                print("Bitte gib eine gültige Zahl ein.")

        elif auswahl == '4':
            manager.alle_notizen_anzeigen()
            try:
                index = int(input("Gib den Index der Notiz ein, die du löschen möchtest: ")) - 1
                manager.notiz_loeschen(index)
            except ValueError:
                print("Bitte gib eine gültige Zahl ein.")

        elif auswahl == '5':
            print("Programm beendet.")
            break

        else:
            print("Ungültige Auswahl. Bitte wähle eine Option zwischen 1 und 5.")


if __name__ == "__main__":
    hauptmenue()
Das Problem ist wenn ich einen Thema hinzufügen möchte mache ich das Thema rein und danach der Titel, wenn ich aber einen langen Titel rein mache wird sich das print("\n--- Notiz Manager ---")
print("1. Notiz hinzufügen")
print("2. Alle Notizen anzeigen")
print("3. Notiz bearbeiten")
print("4. Notiz löschen")
print("5. Beenden")

mehrmals wiederholen und der text speichert sich nicht warum?

Code, Programmiersprache, Python, Python 3
Wie muss ein Pingscript zu Fehlererkennung unter Linux aussehen, das bei Systemstart gestartet wird und ein Log schreibt?

Moin an alle,

ich habe da so ein kleines Projekt vor:
Da unser DSL ab und an aussetzt, da wir - so meine Vermutung - zu wenig Netzwerktraffic erzeugen (es scheint sich zumindest teils zu stabilisieren, wenn man dauerhaft sekündich Pings an Google sendet) und diese DSL-Fehler - so zumindest meine Vermutung - dann auf Dauer auch teils die Fritzbox zum Durchdrehen bringen, würde ich gerne zwei Raspberry Pis der ersten Generation mit Ubuntu bespielen und auf jedem ein Skript mit folgenden Anforderungen laufen lassen:

  • Startet automatisch bei Systemstart.
  • Pingt jede Sekunde eine IP-Adresse oder URL an (über eine Variable des Skripts festlegbar).
  • Dokumentierten jeden Pingfehler (Paket verloren, nicht erreichbar, etc.) in eine ".txt"-Datei.
  • Speichert die ".txt"-Datei mindestens einmal täglich zu einer bestimmten End-Uhrzeit, zu der auch das Skript pausiert wird (Zeit über eine Variable im 24h-Format festlegbar oder via Ubuntu regelbar?).
  • Beginnt eine neue ".txt"-Datei täglich zu einer bestimmten Anfangs-Uhrzeit, zu der auch das Skript neu gestartet wird (Zeit über eine Variable im 24h-Format festlegbar oder via Ubuntu regelbar?).
  • Name der ".txt"-Datei bzw. deren Namensschema am besten per Variable festlegbar.

Der eine Raspberry Pi soll an der Fritzbox direkt angeschlossen werden und die Fritzbox und "Google.de" anpingen (je eine eigene Instanz des Skripts mit je eigenen ".txt"-Logs).
Der andere Raspberry Pi soll am entferntesten Punkt im Netzwerk angeschlossen werden und "Google.de" und den ersten Raspberry Pi anpingen (je eine eigene Instanz des Skripts mit je eigenen ".txt"-Logs).

Ich erhoffe mir damit eine Übersicht der Ausfälle der DSL-Verbindung und der Spinnereinen der Fritzbox.
Die Netzwerkaussetzer sollen dann an den Internetanbieter gesendet werden. Der Rest dient als Nachweis ob die DSL-Aussetzer und die Aussetzer der Fritzbox wirklich zusammen hängen, wie ich das vermute.

Die Fritzbox mit samt Switches, Accesspoints, etc. lasse ich zudem ab sofort über Wochen-Zeitschaltuhren einmal täglch komplett rebooten, in der Hoffnung, dass das ein wenig Abhilfe schafft.

Ich hoffe Ihr könnt mir helfen, da ich leider keine Ahnung habe, wie ich das anstellen soll.
Ich habe zwar das hier für Windows gefunden, doch der Blogautor konnte mir bei Linux auch nicht weiterhelfen:
https://www.andysblog.de/windows-dauerping-mit-protokollierung-von-fehlern

Schonmal danke an alle Tipps und Hilfestellungen!

Server, Internet, WLAN, Internetverbindung, Programm, Netzwerk, IT, programmieren, DSL, FRITZ!Box, Informatik, IP-Adresse, LAN, Logik, Netzwerktechnik, Netzwerkverbindung, Programmiersprache, Router, skript, WLAN-Router, Ping, Repeater, LAN-Kabel, WLAN-Repeater, Raspberry Pi, Raspberry, Pinger
Programmieren in C: Probleme mit der IDE?

Hallo! Im Studienvorbereitungskurs habe ich C gelernt. Wir haben die IDE "Devcpp" genutzt. An der Uni hat auch alles wunderbar geklappt, aber Zuhause bleibt das Programm nicht stehen. Ein "Hello World" z.B. kann ich nicht sehen, weil es die Konsole schließt, sobald das Programm durch ist.

Da das Programm bei mir auch nicht schön dargestellt ist (mit manchen Programmen hat mein Rechner irgendwie ein Problem, dass irgendwas mit der Auflösung nicht stimmt und das Programm irgendwie unscharf ist - aber anderes Thema), habe ich mir gedacht, die IDE zu wechseln und ein paar auszuprobieren.

Ich würde übrigens gerne gute Tipps annehmen. Ich brauche an sich nicht viel, weil ich es erst gelernt habe. Ein Programm, was mir eine Datei erstellt, ein bisschen farbig unterstützt und vielleicht auch bei der Eingabe (automatische zweite Klammer oder so), ein Debugger wäre auch ganz nett, in Python habe ich gern mit dem gearbeitet.. Oh, und ich möchte lokal arbeiten können..

Ich habe dann aber CodeLite und CodeBlocks ausprobiert und das hat irgendwie gar nicht funktioniert.. Ich bekam zwei Mal die Fehlermeldung, dass ich keinen Compiler hätte. In CodeLite kann ich gar nicht erst das Programm ausführen, welches ich geschrieben habe, in CodeBlocks klappt es, aber ich bekomme eine Fehlermeldung ganz am Anfang, dass der Complier fehlt und der Debugger ist ausgegraut.

Ich habe mich damit überhaupt nicht beschäftigt, sondern wollte einfach nur ein paar simple Programme rein aus Spaß ander Freude programmieren, ich bin ein wenig verunsichert und wirklich schlau bin ich aus dem Internet nicht geworden. Ich habe nur die Programmierkenntnisse, weil es mir Spaß gemacht hat.. Mehr aber auch nicht... :I

Kann mir jemand weiterhelfen, was ich tun muss, damit alles funktioniert? ^^"

Computer, App, IT, programmieren, IDE, Code, Programmiersprache, Softwareentwicklung, Webentwicklung, C (Programmiersprache), Entwicklungsumgebung
Pygame Flappy Bird?

Ich habe den folgenden Python-Code mit Pygame programmiert. Bin aber noch ein absoluter Anfänger, daher ist zwischen "#copy start" und "#copy end" der Code von ChatGPT generiert. Die Pipes werden trotzdem nicht angezeigt, weiß jemad woran das liegt?

import pygame
import os
import random

pygame.init()
width = 1280
height = 720
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)
pygame.display.set_caption("Flappy Bird")
PIPE_WIDTH = 80
PIPE_GAP = 150
PIPE_SPEED = 5
flappyY = 360
score = 0
highscore = 0
pipes = []
pipe_timer = 1
if not os.path.exists("highscore.txt"):
    with open("highscore.txt", "w") as file:
        file.write(str(highscore))
with open("highscore.txt", "r") as rfile:
    highscore = int(rfile.read())

#copy start
class Pipe:
    def __init__(self):
        self.x = width
        self.height = random.randint(100, height - PIPE_GAP - 100)
        self.passed = False
    
    def move(self):
        self.x -= PIPE_SPEED

    def draw(self, screen):
        # Draw upper pipe
        pygame.draw.rect(screen, (0, 255, 0), (self.x, 0, PIPE_WIDTH, self.height))
        # Draw lower pipe
        pygame.draw.rect(screen, (0, 255, 0), (self.x, self.height + PIPE_GAP, PIPE_WIDTH, height - self.height - PIPE_GAP))
    
    def off_screen(self):
        return self.x + PIPE_WIDTH < 0
#copy end

running = True
while running:
    for event in pygame.event.get():
        keys = pygame.key.get_pressed()
        if event.type == pygame.QUIT:
            running = False
    if keys[pygame.K_SPACE]:
        if flappyY > -16:       
            flappyY -= 1
    if flappyY < 704:
        flappyY += 0.4
    if score > highscore:
        highscore = score

    #copy start
    if pipe_timer > 100:
            pipes.append(Pipe())
            pipe_timer = 0

    for pipe in pipes:
        pipe.move()
        pipe.draw(screen)

        pipes = [pipe for pipe in pipes if not pipe.off_screen()]

        pipe_timer += 1
    #copy end


    pygame.display.set_caption(f"Flappy Bird (Highscore: {highscore:.0f})")
    rect = pygame.Rect(640, flappyY, 32, 32)
    #print(flappyY)
    screen.fill((0, 180, 255))
    pygame.draw.rect(screen, "red" , rect)
    pygame.display.update()
pygame.quit()

Vielen Dank und LG

Code, Programmiersprache, Python, Python 3, Pygame, Flappy bird, VS Code, ChatGPT
Wie kann man ein weitverzweigtes Geflecht aus if/else-Anweisungen in Python (oder in anderen Programmiersprachen) programmieren?

Wenn man als absoluter Laie in Programmierung im Internet zur if/else-Anweisung (egal, in welcher Programmiersprache) recherchiert, wird man schnell feststellen, dass die Infos, die man hier findet, nicht allzu reichhaltig sind.

Das höchste der Gefühle, was einem beigebracht wird, ist folgenden Dialog zu programmieren: "Welche Sprache sprechen Sie?" - "Französisch." - "Wollen Sie sich auf Französisch weiter unterhalten?" Ende.

Man lernt nicht, wie man mit dem Programm weitermachen kann, falls die Antwort des Benutzers "Ja" sein sollte. Man erfährt gar nichts. Was zu finden ist, ist, wie man EINE FRAGE STELLT und dann auf EINE ANTWORT zu dieser Frage reagieren kann. Das war's.

Ich wüsste gern, wie man das weiterspinnen kann. Wie man eine ganz lange Unterhaltung mit allen möglichen Antwortmöglichkeiten programmieren kann. So wie bei einem Windows-Installationassistenten, der dafür sorgt, dass Windows unter hundert verschiedenen Arten auf die Art installiert wird, wie der Benutzer es will.

Wenn die Benutzer dieser Seite keine Antwort auf die Frage haben, weil sie es selbst nicht wissen, ist das überhaupt kein Problem. Man trifft immer wieder einen It-Profi, der es vielleicht weiß.

Allerdings lässt sich extrem leicht feststellen, dass irgendwelche Teenies oder Leute, die auf dem geistigen Niveau von (nicht sehr gut erzogenen) Teenies stehengeblieben sind, es sich zum Hobby machen, auf dieser Seite unvorstellbar bösartig und beleidigend zu antworten. Es ist völlig egal, was man fragt, egal ob "Wie heißt das weiße Zeug, das früher auf den Donuts war?" oder "In welchen Läden kann man viele naturfreundliche Reinigungsmittel kaufen?" Es wird immer geantwortet von irgendwelchen Leuten, die zu wenig zu tun haben und sich ihre Zeit vertreiben, Leute im Internet mit Sprüchen wie "Boah, Alta, wie dumm BIIISSSSST Du eigentlich?" zu beleidigen.

Ich werde auf so einen Schwachsinn nicht antworten, auch nicht auf "gut gemeinte Rückfragen" und schon gar nicht auf "Also, mit SO EINER NEGATIVEN EINSTELLUNG MENSCHEN GEGENÜBER würde ich hier aber KEINE Frage stellen".

Die Frage ist klar formuliert, so klar wie sie klarer nicht formuliert werden kann. So wie "Was ist 2 + 2?" Wenn jemand die Antwort wüsste, würde mich das sehr freuen. Wenn nicht, dann nicht.

Danke, Ende.

Computer, IT, programmieren, Java, Anwendungsentwicklung, C Sharp, Programmiersprache, Python, Softwareentwicklung, Webentwicklung, Rust, Programmcode, Objektorientierte Programmierung
Website erstellen - Mit Lua/Luau möglich?

Ist es eigentlich möglich, mit Lua oder Luau eine qualitative Website mit komplexem Layout und 3D-Elementen zu erstellen, oder kommt man um den JavaScript nicht herum?

Ich bin Anfänger (habe noch mich noch nie mit programmieren/coden vertraut gemacht) und möchte damit beginnen, zu lernen, wie man einen Code zu einer Website transformiert, habe mich damit aber noch nicht auseinandergesetzt (ich habe bisher noch keine Erfahrung mit coden von Websites). Und ja, bisher habe ich keine einzelne Zeile Code geschrieben und kenne mich auch nicht wirklich aus. Jedenfalls, für mich wäre es effizienter und eventuell auch besser, mich mit Lua vertraut zu machen, aber da ich dazu nichts gefunden habe, habe ich die Befürchtung, dass JavaScript nicht zu umgeben ist. Und so bin ich auf gutefrage.net gekommen, wie jeder, wenn er etwas sucht.

Kurzgefasst interessiert mich, ob man mit Lua folgendes tun kann:

  • Eine Website mit 3D-Effekten erstellen
  • Eine Website mit Animationen erstellen
  • Komplexe Layouts Wirklichkeit werden lassen

Ich bin noch ein richtiger Anfänger, aber mich würden eure Antwort und euer Wissen interessieren, damit ich weiß, was für die Zukunft besser ist (schließlich möchte ich eine Programmiersprache für die Erstellung von Websites lernen und dieses Wissen auch festigen, nicht umher springen von Programmiersprache zu Programmiersprache), denn es ist ja klar, dass ich erst klein beginnen würde (keine komplexen Layouts, Animationen, ...).

Danke!

Homepage, App, HTML, Webseite, CSS, JavaScript, HTML5, lua, Programmiersprache, Webdesign, Webentwicklung

Meistgelesene Beiträge zum Thema Programmiersprache