komme bei einem Python Problem nicht weiter?

Hallo, ich programmiere gerade für mich eine art strasen rennen mit einem neuronalen netzt. das soll aber wirklich ein zeitaufwendiges projekt werden. aber jetzt brauch ich hilfe bei der strase. Ich will einen strasen kurs programmieren der schon bisschen lang ist, damit die autos auch fahren könne. kann mir villeicht jemand helfen weil sonst schaff ich das nicht. ich brauch sonst ewig dafür. also lasst euch von den roten linien nicht verwirren, aber es wäre perfekt wenn ihr einen strasen weg programmieren könntet mir kurven und allem drum und dran so wie zum teil schon in meinem code. Ausenrum um die strase soll eine blaue linie führen. Ein dickes dickes DANKE wenn das jemand schaffen würde, weil ich schaffs nicht. Da bin ich noch zu unerfahren. Deshalb wird das neuronales netzt unendlich dauern. Hier mein code :

import tkinter as tk

import math

class Ball:

  def __init__(self, canvas, color, size, x, y):

    self.canvas = canvas

    self.color = color

    self.size = size

    self.x = x

    self.y = y

    self.id = canvas.create_oval(x, y, x+size, y+size, fill=color)

    self.lines = [self.canvas.create_line(x, y, x, y, fill='red') for _ in range(5)]

    self.text = self.canvas.create_text(x, y, text="", fill="black")

  def update_lines(self):

    angles = [random.uniform(math.radians(-80), math.radians(80)) for _ in range(5)]

    distances = []

    for i, (line, angle) in enumerate(zip(self.lines, angles)):

      end_x = self.x + self.size/2 + 1000*math.cos(angle)

      end_y = self.y + self.size/2 - 1000*math.sin(angle)

      if end_y < road_top:

        end_y = road_top

      elif end_y > road_bottom:

        end_y = road_bottom

      self.canvas.coords(line, self.x + self.size/2, self.y + self.size/2, end_x, end_y)

      distances.append(min(abs(self.y + self.size/2 - road_top), abs(self.y + self.size/2 - road_bottom)))

    min_distance = min(distances)

    self.canvas.itemconfig(self.text, text=str(min_distance), state='normal')

  def hide_text(self):

    self.canvas.itemconfig(self.text, state='hidden')

def create_ball(canvas, size, y):

  x = 0

  return Ball(canvas, 'green', size, x, y)

root = tk.Tk()

canvas_width = 400

canvas_height = 300

ball_size = 10

road_top = canvas_height/2 - 50

road_bottom = canvas_height/2 + 50

canvas = tk.Canvas(root, width=canvas_width, height=canvas_height)

canvas.pack()

# Draw the road

canvas.create_rectangle(0, road_top, canvas_width, road_bottom, fill='gray')

canvas.create_line(0, canvas_height/2, canvas_width, canvas_height/2, fill='white', dash=(20, 20))

# Create balls on the road

balls = [create_ball(canvas, ball_size, y) for y in range(int(road_top), int(road_bottom), ball_size*2)]

for ball in balls:

  ball.update_lines()

  ball.hide_text()

root.mainloop()

Programm, Programmiersprache, Python, Straße, Python 3, Tkinter, Neuronales Netzwerk
Python/Tkinker: Wieso liefert mein Reaktionstest immer die Reaktionszeit 0, ohne dass ich etwas drücke?

Ich bekomme immer Reaktionzeit: 0 gesagt, ohne etwas zu drücken. Weiß jemand, wieso das so ist?

from tkinter import *
import random

window = Tk()
window.title("Reaktionstest")
window.geometry("800x800")
window.configure(bg="white")
limit = 0
score = random.randint(9, 10)
reaction_time = 0
green = False

def verzögerung():
  global score, limit, green
  score -= 1

  if score = limit:
    # schedule next update 1 second later
    window.after(1000, reaktion)
  else:
    green = False # Setze green auf False, wenn score kleiner oder gleich limit ist
    show_end_screen()

def reaktion():
  global green, reaction_time

  if green:
    reaction_time += 1
    if rB.winfo_exists(): # Überprüfung, ob der Button noch existiert
      rB.configure(bg="red")
    print("Red")
  else:
    green = True

    if rB.winfo_exists(): # Überprüfung, ob der Button noch existiert
      rB.configure(bg="green")
    print("Green")

def show_end_screen():
  global reaction_time # Zugriff auf die globale Variable reaction_time
  rB.destroy()
  reaction_time_label = Label(window, text=f"Reaktionszeit: {reaction_time} Sekunden", bg="white", fg="black", font=("Arial", 24))
  reaction_time_label.place(x=250, y=150)

ueberschrift = Label(window, text="Reaktionstest", bg="lightcyan", fg="black", font=("Arial", 44, "bold"))
ueberschrift.place(x=234, y=50)
rB = Button(window, bg="red", text="Drücke mich, wenn ich grün werde", font=("Arial", 10), command=reaktion)
rB.place(x=100, y=100, width=400, height=400)
limit = score # Setze limit auf den Wert von score
window.after(1000, verzögerung) # start the update 1 second later
window.mainloop()
Python, Tkinter
Python Fehler no attribute 'TFE_NewContextOptions'?

Hi, Ich habe einen Fehler beim ausführen von einem Python Script:

C:\Users\DeneX\Desktop\SC_FEGAN\SC-FEGAN-program-files>python demo.py

Traceback (most recent call last):

 File "C:\Users\DeneX\Desktop\SC_FEGAN\SC-FEGAN-program-files\demo.py", line 11, in <module>

   from model import Model

 File "C:\Users\DeneX\Desktop\SC_FEGAN\SC-FEGAN-program-files\model.py", line 1, in <module>

   import tensorflow as tf

 File "C:\Users\DeneX\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\tensorflow\__init__.py", line 24, in <module>

   from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import

   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\DeneX\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\tensorflow\python\__init__.py", line 49, in <module>

   from tensorflow.python import pywrap_tensorflow

 File "C:\Users\DeneX\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>

   from tensorflow.python.pywrap_tensorflow_internal import *

 File "C:\Users\DeneX\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 96, in <module>

   TFE_NewContextOptions = _pywrap_tensorflow_internal.TFE_NewContextOptions

                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: module '_pywrap_tensorflow_internal' has no attribute 'TFE_NewContextOptions'

Wie bekomme ich das behoben; Ich habe tensorflow==1.13.0rc2 installiert damit das Script läuft & Python 3.11.3

Linux, Programmiersprache, Python, Python 3, Pygame, Tkinter, Pycharm, Discord, Discord Bot
Python Programm läuft nicht?

Hallo,

ich habe Folgendes Problem ich habe diesen Code Geschrieben und wollte ein anmelde Fenster Programmieren es kommt auch noch ein Registieren Button dazu da muss ich aber noch überlegen wie ich es umsetze.

nun zu meinem problem wenn ich das programm mit Python auführen will versucht es das schließt aber direkt wie also man sieht für ein bruchteil einer sekunde den fenster rahmen abe rmehr passiert nicht... was kann ich tun?

entwicklungsumgehbung: Notpad ++ v8.5.2

Phyton 3.11

Vielen dank

@title Anmeldung




# Log in
def LogIn():
    name=input("Benutzername Eingeben: ")
    file = open(name.lower() + " profile.txt", "r")
    
#+=====Grafik======================Grafik=======================Grafik+#


    #-Import module-
    import tkinter
    import time
    
    #-Fenster-
    # Erstelle Fenster
    window = tkinter.Tk()
    # fenstername
    window.title("Login")
    # Größe
    #window.geometry("")
    window.geometry("270x210")
    # Fenster farbe
    window.configure(bg="#39d972")
    
    #-Commands-
    #Start
    def callback():
        line = file.readlines()
        Benutzername = user.get()
        Passwort = passw.get()
        if username == line[1] and password == line[2]
            message.configure(text = "Erfolgreich")
        else:
            message.configure(text= "Benutzername oder Password Falsch")
    #-Widgets-
    #Labels
    title1 = tkinter.Label(window, text="Anmeldung Erfoderlich")
    Benutzertitel = tkinter.Label(window=, text="---Benutzername---")
    Passworttitel = tkinter.Label(window=, text="---Passwort---")
    message = tkinter.Label(window, bg="#39d972")
    
    #text Fenster
    user = tkinter.Entry(window)
    passw = tkinter.Entry(window, show='*')
    
    #buttons
    go = tkinter.Button(window, text="Log in!", command = callback, bg"#93ff00")
    
    #pack widgets
    title1.pack()
    usertitle.pack()
    user.pack()
    passtitle.pack()
    passw.pack()
    go.packmessage.pack()
    
    #start window
    window.mainloop()
            
        
    
    
Computer, Programm, programmieren, Admin, Administrator, Informatik, Programmiersprache, Python, Administratorrechte, Python 3, Tkinter
Durschnittszeiten mit arrays in python berechnen?

Ich programmiere aktuell einen 1x1 Trainer um Programmieren zu üben/ lernen. Aktuell wird nach eingeben der Aufgabe, die Aufgabe überprüft und Richtig oder Falsch angezeigt. Darunter die benötigte Zeit für die Aufgabe.
Jetzt will ich aber statt der benötigten Zeit pro Aufgabe die Durchschnittszeit pro Aufgabe angezeigt bekommen (Am besten mit Speichern von Daten in Arrays).

Kann mir da jemand helfen?

Hier der aktuelle Code:

from random import randint

import tkinter as tk

import time

status = False

def buttonLos_clicked(event):

    global status

   

    if status == False:

        status = True

        nextTask()

def nextTask():

    global a, b, produkt, zeitanfang

    textbox.delete(0,tk.END)

    zeitanfang = time.time()

   

    a = randint(1,10)

    b = randint(1,10)

    produkt = a * b

    showTask()

def showTask():

    global a, b

   

    labelTask["text"]="Wie viel ist " + str(a) + " x " + str(b) + "?"

def checkAufgabe(event):

    global produkt, zeitanfang, zeitende

   

    antwort = int(textbox.get())

    if antwort == produkt:

        zeitende = time.time()

        labelAnswer["text"] = "Richtig"

        labelTime["text"] = round(zeitende - zeitanfang, 2)

        nextTask()

   

    else:

        labelAnswer["text"] = "Leider falsch. Probiere es nochmal"

        textbox.delete(0,tk.END)

        showTask()

root = tk.Tk()

root.title("1x1-Trainer")

labelBody1 = tk.Label(root, text="Es werden dir zufällige Aufgaben gestellt.")

buttonLos = tk.Button(root, text="Los")

labelTask = tk.Label(root)

textbox = tk.Entry(root)

labelAnswer = tk.Label(root)

labelTime = tk.Label(root)

labelBody1.pack()

buttonLos.pack()

labelTask.pack()

textbox.pack()

labelAnswer.pack()

labelTime.pack()

buttonLos.bind("<Button-1>", buttonLos_clicked)

textbox.bind("<Return>", checkAufgabe)

root.mainloop()

programmieren, Array, Programmiersprache, Python, time, benutzeroberflaeche, Python 3, Tkinter
Wie starte ich die While Schleife in Python neu?

Hallo!

Ich programmiere aktuell einen "Vokabelabfrager". Dazu hätte ich eine Frage. Und zwar arbeite ich grafisch mit Tkinter. Doch ich bin gerade in einer While Schleife, in der alles funktioniert, aber dann will die While Schleife sich nicht mehr neustarten, denn sie hat schon erledigt was sie machen sollte, und will nicht weiter abfragen, weil sie dies schon gemacht hat.

Das ist ein Ausschit meines Codes:

weiter = False


def Prüfungs_Start():
    global weiter
    weiter = True
    while weiter == True:
        weiter = False
        Prüfungs_Start_Fenster = Tk()
        Prüfungs_Start_Fenster.title("Prüfung")
        Prüfungs_Start_Fenster.geometry("400x500")
        #Random Zeile finden
        Datei = open("Vokabeln.txt", "a")
        Datei = open("Vokabeln.txt", "r")
        Datei_Anzahl_Zeilen = 0
        for Zeile in Datei:
            Datei_Anzahl_Zeilen += 1
        Datei.seek(0)
        Randomzeile = randint(1, Datei_Anzahl_Zeilen)
        Zähler = 1
        for Zeilen_Inhalt in Datei:
            if Zähler == Randomzeile:
                Random_Zeilen_Inhalt = Zeilen_Inhalt
            Zähler += 1
        #2 Vokabeln, die in der ausgewählten Zeile stehen, in 2 Variablen speichern
        Ort = Random_Zeilen_Inhalt.find("'")
        TestVokabel1 = Random_Zeilen_Inhalt[0:Ort]
        TestVokabel2 = Random_Zeilen_Inhalt[Ort+1:-1]
        Label(Prüfungs_Start_Fenster, text = f"Ausgangs-Vokabel: {TestVokabel1}", font = "Arial_Black 20").place(x = 10, y = 10)
        Eingegebenes_Ergebnis = Entry(Prüfungs_Start_Fenster)
        Eingegebenes_Ergebnis.place(x = 10, y = 50)
        def Prüfung():
            if Eingegebenes_Ergebnis.get() == TestVokabel2:
                Label(Prüfungs_Start_Fenster, text = "Richtig!         ", font = "Arial 21", fg = "green").place(x = 10, y = 180)
            else:
                Label(Prüfungs_Start_Fenster, text = "Leider falsch", font = "Arial 21", fg = "red").place(x = 10, y = 180)


        Button(Prüfungs_Start_Fenster, text = "Fertig", command = Prüfung).place(x = 10, y = 100)
        def Weiter():
            global weiter
            weiter = True
            Prüfungs_Start_Fenster.destroy()
        Button(Prüfungs_Start_Fenster, text = "Weiter", command = Weiter).place(x = 10, y = 130)

Nun habe ich hinten diesen "Weiter" Button, der die Variable "weiter" wieder auf einen anderen Wert weisen soll, um die While Schleife wieder laufen zu lassen. Das möchte sie aber wohl nicht, denn sie hat ja schon abgefragt und da hat es nicht gestimmt.

Wenn ihr wisst, wie ich es schaffen kann, dass die While Schleife neu abfragt, bitte hilft mir,

euer Alex

programmieren, Programmiersprache, Python, Tkinter
Datei finden Fehler?

Hallo,

ich mache ein Programm in Python (mit Turtle), welches erkennt wo die ISS ist. Aber (obwohl es in demselben Ordner ist) findet es die Datei 'map.gif' nicht. Kann mir da jemand helfen?

Danke im voraus!

Code:

import json
import turtle
import urllib.request


url = 'http://api.open-notify.org/astros.json'
antwort = urllib.request.urlopen(url)
ergebnis = json.loads(antwort.read())


print('Personen im Weltall: ', ergebnis['number'])


personen = ergebnis['people']
#print(personen)



for p in personen:
    print(p['name'], 'in', p['craft'])


url = 'http://api.open-notify.org/iss-now.json'
antwort = urllib.request.urlopen(url)
ergebnis = json.loads(antwort.read())


standort = ergebnis['iss_position']
breitengrad = float(standort['latitude'])
längengrad = float(standort['longitude'])
print('Breitengrad: ', breitengrad)
print('Längengrad: ', längengrad)


bildschirm = turtle.Screen()
bildschirm.bgpic("map.gif")

Fehlermeldung:

File "/home/pi/Dokumente/Python programme/Standart/Wo ist die ISS?", line 29, in <module>
    bildschirm.bgpic("map.gif")
  File "/usr/lib/python3.7/turtle.py", line 1481, in bgpic
    self._bgpics[picname] = self._image(picname)
  File "/usr/lib/python3.7/turtle.py", line 479, in _image
    return TK.PhotoImage(file=filename)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 3545, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 3501, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "map.gif": no such file or directory
Python, Python 3, Tkinter
Python Tkinter clear geht nicht?

```File "C:\Users\Marek\energyECO\Gewinnspiel\clearEntry.py", line 9, in register_user

   vorname_entry.delete(0, END)

AttributeError: 'NoneType' object has no attribute 'delete'```

Das ist der Error

Und das der Code:

from tkinter import *
import csv

def register_user():
    vorname_info = vorname.get()
    nachname_info = nachname.get()
    email_info = email.get()

    # open the file in the write mode
    with open('Benutzernamen.csv', 'a', newline='', encoding='UTF8') as f:
        # create the csv writer
        writer = csv.writer(f, delimiter =';')
        # write a row to the csv file
        row=[vorname_info, nachname_info, email_info]
        writer.writerow(row)
        # close the file
        f.close()

    #vorname_entry.delete(0, END)
    #nachname_entry.delete(-0, END)

    Label(screen1, text="energyECO")

    vorname_entry.delete(0, 'end')
    nachname_entry.delete(0, 'end')
    email_entry.delete(0, 'end')


def register():

    global screen1
    screen1 = Toplevel(screen)
    screen1.title("Gewinnspiel")
    screen1.geometry("550x500")

    global vorname
    global nachname
    global email

    vorname = StringVar()
    nachname = StringVar()
    email = StringVar()

    global vorname_entry
    global nachname_entry
    global email_entry

    Label(screen1, text="Bitte tragen sie ihren Vor- und Nachnamen und außerdem ihre E-Mail ein", font=('Arial 15')).pack()
    Label(screen1, text=" ").pack()
    Label(screen1, text="Vorname * ", font=('Arial 12')).pack()
    vorname_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=vorname).pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="Nachname * ", font=('Arial 12')).pack()
    nachnamne_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=nachname).pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="E-Mail * ", font=('Arial 12')).pack()
    email_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=email).pack()
    Label(screen1,text=" ").pack()
    Label(screen1,text=" ").pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="Mit der Teilnahme am Gewinnspiel und der Eingabe meine Daten erkläre ich mich bereit, den E-Mail Newsletter von energyECO monatlich zu erhalten.", font=("Arial 10")).pack()
    Label(screen1,text=" ").pack()
    Button(screen1, text="Daten senden", font=('Arial 20'), width="15", height="2", command=register_user).pack()


def close():
    print("Closed!")
    screen.destroy()
    screen1.destroy()

def main_screen():
    global screen
    screen = Tk()
    screen.geometry("300x250")
    screen.title("energyECO")

    Label(text="energyECO", bg="gray", width="300", height="2", font=("Calibri", 13)).pack()
    Label(text=" ").pack()
    Button(text="Gewinnspiel", height="2", width="30", command=register).pack()
    Label(text=" ").pack()
    Label(text=" ").pack()
    Label(text=" ").pack()
    Button(text="Close", command=close).pack()
    Label(text=" ").pack()

    screen.mainloop()

main_screen()
Python 3, Tkinter
Tkinter Button funktioniert nicht und Canvas Delete funktioniert nicht Bitte Hilfe?

Sehr geehrte Python und Tkinter Fans,

ich habe 2 Probleme. Und zwar ich möchte das wenn ein Knopf gedrückt wird 2 weitere Knöpfe am display erscheinen die man drücken kann. Ein Knopf z.B. "Ja" und der andere Knopf "Nein". Aber sie funktionieren nicht. Und wie kann ich es machen falls auf Nein gedrückt wird, dass dann die Buttons wieder verschwinden?

Mein Code:

def yes_option():
    root.destroy()


def close_root(event):
    assistant_lady_canvas =canvas.create_image(400, 540, image=assistant_lady, anchor=tk.NW)
    assistant_text = canvas.create_text(1400, 500, text="Möchten sie, das Spiel beenden?", fill="black", font=("Courier", 20, "bold"))
    canvas.create_image(0, 0, image="", anchor=tk.NW)
    #root.destroy()

    def close_root_destroy():
        canvas.delete(assistant_lady_canvas)
        canvas.delete(assistant_text)
        canvas.update()
        root.destroy()

    yes_button = canvas.create_image(1280, 600, image=yes)
    canvas.tag_bind(yes_button, "<Button-1>", yes_option)

    no_button = canvas.create_image(1520, 600, image=no)
    canvas.tag_bind(no_button, "<Button-1>", close_root_destroy)

Error:

Exception in Tkinter callback

Traceback (most recent call last):

 File "C:\Users\nicol\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__

  return self.func(*args)

TypeError: yes_option() takes 0 positional arguments but 1 was given

Vielen Dank im Vorraus!

Computer, programmieren, canvas, Python, game-development, Tkinter
Python - tkinter text eingabe in variable?

Hallo,

ich habe folgendes programmiert:

import tkinter as tk
import os


root = tk.Tk()
root.geometry("400x240")


def encrypt(filename):
    to_encrypt = open(filename, "rb").read()
    size = len(to_encrypt)
    key = os.urandom(size)
    with open(filename + ".lqk", "wb") as key_out:
        key_out.write(key)
    encrypted = bytes(a ^ b for (a, b) in zip(to_encrypt, key))
    with open(filename, "wb") as encrypted_out:
        encrypted_out.write(encrypted)  
    filename = textExample.get(1.0, tk.END+"-1c")
    encrypt(filename)




def decrypt(filename, key):
    file = open(filename, "rb").read()
    key = open(key, "rb").read()
    decrypted = bytes(a ^ b for (a, b) in zip(file, key))
    with open(filename, "wb") as decrypted_out:
        decrypted_out.write(decrypted)
    fileTest = filename + ".lqk"
    try:
        os.remove(fileTest)
    except OSError as e:
        print(e)
    else:
        print("Datei erfolgreich gelöscht!")
    filename = textExample.get(1.0, tk.END+"-1c")
    decrypt(filename, filename + ".lqk")
    
    


textExample=tk.Text(root, height=10)
textExample.pack()
btnEncrypt=tk.Button(root, height=1, width=10, text="Encrypt", 
                    command=encrypt)
btnDecrypt=tk.Button(root, height=1, width=10, text="Decrypt", 
                    command=decrypt)


btnEncrypt.pack()
btnDecrypt.pack()


root.mainloop()

Nur leider funktioniert dies nicht. In der Debugging Console bekomme ich folgende Fehlermeldung:

Bei der Encrypt Funktion:

PS C:\Users\elias\Desktop\Python>  c:; cd 'c:\Users\elias\Desktop\Python'; & 'C:\Users\elias\AppData\Local\Programs\Python\Python310\python.exe' 'c:\Users\elias\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\launcher' '52518' '--' 'c:\Users\elias\Desktop\Python\main.py'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\elias\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
TypeError: encrypt() missing 1 required positional argument: 'filename'


Decrypt Funktion:

Traceback (most recent call last):
  File "C:\Users\elias\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
TypeError: decrypt() missing 2 required positional arguments: 'filename' and 'key'      


Wie kann ich das Problem jetzt lösen?

Danke im Vorraus!

VG!

programmieren, Python, Python 3, Tkinter
Tkinter Button muss in bestimmten Zeitpunkt gedrückt werden?

Ich möchte mit tkinter (Python) einen Button machen, der in einer bestimmten Zeit gedrückt werden muss, ansonsten soll

print("failedTime")

ausgegeben werden.

Mein Code:

from tkinter import *
import random

xr = 40
yr = 40

global hitButton

def restartGame():
    root.destroy()
    Main()

def noCommand():
    print("no command executed")

def failEvent():
    global hitButton
    print("failed")
    OverLabel = Label(image=GameOverIMG)
    OverLabel.place(x=200, y=80)
    print("test")
    hitButton.place(x=232323, y=232323)
    bRestart = Button(root, text="Restart", fg="WHITE", bg="BLACK", command=restartGame, width=5, height=3)
    bRestart.place(x=200, y=700)

def ButtonHitEvent():
    global xr
    global yr
    xr = random.randint(40, 1800)
    yr = random.randint(40, 1000)
    hitButton.place(x=xr, y=yr)

def Main():
    global hitButton
    global ButtonImg
    global ClearIMG
    global clearLabelGameOver
    global ButtonWindow
    global hitButton
    global GameOverIMG
    global root

    root = Tk()
    root.geometry("1920x1080")

    ButtonImg = PhotoImage(file="C:/Users/jakob/AppData/Local/Programs/Python/Python39/Scripts/Scripts/Python/Tkinter/graphics/ButtonClick.png")
    GameOverIMG = PhotoImage(file="C:/Users/jakob/AppData/Local/Programs/Python/Python39/Scripts/Scripts/Python/Tkinter/graphics/GameOver.png")
    ClearIMG = PhotoImage(file="C:/Users/jakob/AppData/Local/Programs/Python/Python39/Scripts/Scripts/Python/Tkinter/graphics/clear.png")

    clearLabelGameOver = Label(root, image=ClearIMG)
    clearLabelGameOver.place(x=300, y=200)

    ButtonWindow = Button(root, text=" ", width=300, height=300, command=failEvent, background="BLACK", foreground="BLACK").pack()

    hitButton = Button(root, image=ButtonImg, command=ButtonHitEvent, fg="BLACK", bg="BLACK")
    hitButton.place(x=40, y=40)

    root.mainloop()

if __name__ == '__main__':
    Main()
Computer, programmieren, Python, Tkinter
Python tkinter bg wird nicht erkannt?

Hallo ich in tkinter ein kleines gui geschrieben, das ein Download anzeigen soll. Das funktioniert auch alles allerdings ist der Hintergrund vom Text nicht genau weis sondern so leicht grau. Deshalb wollte ich den bg von der Schrift umändern, was anscheinend nicht funktioniert D:

Code:

```from tkinter import *
 from tkinter.ttk import *
import time




ws=Tk()
ws.title("Open download-Test")
ws.geometry("600x300")
ws.iconbitmap("F:\Explorer\Bilder\dcqf9q5-dcb565f7-7fc6-4973-a6c1-af6a4e867717.ico")
ws.configure(bg="white")

Progress_Bar=Progressbar(master=ws,orient=HORIZONTAL,length=300)
Progress_Bar.place(x=10, y=150)

Line1 = Label(master=ws, text='You have to wait until the program is fully downloaded:',bg="white", font=('Corbel', 12, 'italic'))
Line1.place(x=10, y=10)

HMH = PhotoImage(file = r"F:\Explorer\Bilder\Screenshot_8.png")
Img1 = Label(ws, image = HMH)
Img1.place(x = 10,y = 40)

Line2 = Label(master=ws, text='download-Test', font=('Corbel', 12,"bold", 'italic'))
Line2.place(x=46, y=43)

Line3 = Label(master=ws, text='which is: Binary File(54 GB) ', font=('Corbel', 12, 'italic'))
Line3.place(x=46, y=68)

Line3 = Label(master=ws, text='from://www.Test.com ', font=('Corbel', 12, 'italic'))
Line3.place(x=46, y=88)

Line3 = Label(master=ws, text='Remaining download time:', font=('Corbel', 12))
Line3.place(x=10, y=118)

cmd1 = Label(master=ws, text='0%', font=('Corbel', 12, 'italic'))
cmd1.place(x=320, y=150)



i = 0
def Slide():
    global i
    while(i<100):
        i = i +1
        Progress_Bar['value'] = i
        ws.update_idletasks()
        time.sleep(1)
        conect = str(i) + "%"
        cmd1.config(text=conect)
    if i == 100:
        print("Finish")

Slide()

mainloop()

Und das ist die fehlermeldung:

Wenn jemand die Antwort weis würde ich mich sehr über eine Antwort freuen.

MFG. Theo

Bild zu Frage
programmieren, Python, Tkinter
Tkinter hängt sich auf wenn ich den Button drücke?

Hi, ich soll für die Schule in Informatik ein Verschlüsselungsprogramm schreiben. Ich habe hier die Caeser verschlüsselung genommen. Der Code hat ohne Tkinter Super Funktioniert:

def Code():
code = input("Code: ")
Verschiebung = int(input("Verschiebungsfaktor: "))
coded = "".join(chr((ord(char) + Verschiebung) % 256) for char in code)
print("Verschlüsselter Code:", coded)
def Encode():
code = input("Verschlüsselung: ")
x = int(input("Verschiebungsfaktor: "))
Verschiebung = -x
encoded = "".join(chr((ord(char) + Verschiebung) % 256) for char in code) print("Entschlüsselter Code:", encoded)

Hier ist der Code mit Tkinter:

from tkinter import *
def Code():
  code = input(b.get())
  Verschiebung = int(input(d.get()))
  coded = "".join(chr((ord(char) + Verschiebung) % 256) for char in code)
  h.config(text=coded)
def Encode():
  code = input(b.get())
  x = int(input(d.get()))
  Verschiebung = -x
  encoded = "".join(chr((ord(char) + Verschiebung) % 256) for char in code)
  h.config(text=encoded)
F = Tk()
F.title('Coding')
F.geometry('500x500')
F.config(bg='gray')
a = Label(master=F, text='Eingabe:', fg='white', bg='black', font=('Arial',16))
a.place(x=50, y=50, width=200, height=50)
b = Entry(master=F, text='', font=('Arial',16))
b.place(x=275, y=50, width=200, height=50)
c = Label(master=F, text='Schlüssel:', fg='white', bg='black', font=('Arial',16))
c.place(x=50, y=125, width=200, height=50)
d = Entry(master=F, text='', font=('Arial',16))
d.place(x=275, y=125, width=200, height=50)
e = Button(master=F, text='Verschlüsseln', fg='white', bg='black', font=('Arial',16), command=Code)
e.place(x=50, y=200, width=200, height=50)
g = Button(master=F, text='Entschlüsseln', fg='white', bg='black', font=('Arial',16), command=Encode)
g.place(x=275, y=200, width=200, height=50)
h = Label(master=F, text='', font=('Arial',16))
h.place(x=50, y=275, width=425, height=50)
F.mainloop()

Das Problem ist, das sich Tkinter aufhängt und abstürtzt wenn ich einen Button drücke

Computer, Technik, programmieren, Python, Tkinter
AttributeError: 'PhotoImage' object has no attribute 'shape'?

Ich bin derzeit dabei mit tkinter, opencv und mit Media Pipe Framework zu arbeiten. Dabei möchte ich Bilder Hochladen können und die hochgeladenen Bilder soll mithilfe von Mediapipe die Hand Landmarks erfassen. Mit Hand Landmarks meine ich alle 21 Positionen eines Hand zu erkennen (Hier findet ihr mehr Infos dazu: https://google.github.io/mediapipe/solutions/hands.html ). Leider bekomme ich mit meiner erstellten Implementierung folgende Fehlermeldung:

INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:/Users/bj/projects/pro1/pictureMp.py", line 31, in imageLandmarks
    height, width, _ = image.shape
AttributeError: 'PhotoImage' object has no attribute 'shape'

Was kann ich dagegen machen? Hier ist mein aktueller Code:

def imageLandmarks():
    global panelA
    with mpHands.Hands(static_image_mode=True, max_num_hands=2, min_detection_confidence=0.5) as hands:
        select_image.path = filedialog.askopenfilename()
        filename = os.path.basename(select_image.path)

        if len(select_image.path) > 0:
            image = cv2.imread(select_image.path)
            image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
            image = Image.fromarray(image)
            image = ImageTk.PhotoImage(image)

            height, width, _ = image.shape
            results = hands.process(image)

            num_cords = 21
            landmarks = ['class']
            for val in range(1, num_cords + 1):
                landmarks += ['x{}'.format(val), 'y{}'.format(val), 'z{}'.format(val)]

                if results.multi_hand_landmarks:
                    for num, hand in enumerate(results.multi_hand_landmarks):
                        mpDraw.draw_landmarks(image, hand, mpHands.HAND_CONNECTIONS)
programmieren, Python, opencv, Tkinter
Python: Wie kann ich feld1 bis feld7 so zusammenfassen, sodass ich das nicht alles einzeln eingeben muss?

Hey, ich möchte feld1 bis feld7 so zusammenfassen, sodass ich das nicht alles einzeln eingeben muss. Dazu finde ich nur leider nichts im Internet.

import tkinter as tk from tkinter import *

modul = tk.Tk()
modul.geometry("900x900")
modul.title("Bunt3x3")
modul.resizable(width=False, height=False)

r = "red"
y = "yellow"
g = "green"
b = "blue"

def change():
  if feld1["bg"] == r:
    feld1.config(bg=g)
    feld3.config(bg=g)
    feld5.config(bg=g)
    feld7.config(bg=g)
    feld2.config(bg=b)
    feld4.config(bg=b)
    feld6.config(bg=b)
    feld8.config(bg=b)

    feldlabel.config(text="Rot & gelb")

  elif feld1["bg"] == g:
    feld1.config(bg=r)
    feld3.config(bg=r)
    feld5.config(bg=r)
    feld7.config(bg=r)
    feld2.config(bg=y)
    feld4.config(bg=y)
    feld6.config(bg=y)
    feld8.config(bg=y)

    feldlabel.config(text="Gruen & blau")

feld1 = tk.Frame(bg=r, width=300, height=300)
feld1.grid(column=1, row=1)
feld3 = tk.Frame(bg=r, width=300, height=300)
feld3.grid(column=3, row=1)
feld5 = tk.Frame(bg=r, width=300, height=300)
feld5.grid(column=1, row=3)
feld7 = tk.Frame(bg=r, width=300, height=300)
feld7.grid(column=3, row=3)
feld2 = tk.Frame(bg=y, width=300, height=300)
feld2.grid(column=2, row=1)
feld4 = tk.Frame(bg=y, width=300, height=300)
feld4.grid(column=1, row=2)
feld6 = tk.Frame(bg=y, width=300, height=300)
feld6.grid(column=3, row=2)
feld8 = tk.Frame(bg=y, width=300, height=300)
feld8.grid(column=2, row=3)

feld = tk.Frame(bg="white", width=300, height=300).grid(column=2, row=2)
feldlabel = tk.Label(text="Gruen & blau", bg="white", fg="black", font=("Arial", 15, "bold"))
feldlabel.grid(column=2, row=2)
feldbutton = tk.Button(text="Farbe aendern!", font=("Arial", 15, "bold"), bg="white", fg="black", command=change).place(x=370, y=470)
modul.mainloop()
programmieren, Array, Informatik, Python, Zusammenfassung, Variablen, list, Tkinter
Tkinter: Scrollbar erstellen?

Hey Leute!

Ich habe nochmal eine Frage.

Ich wollte für mein erstes GUI-Projekt in Python eine Scrollbar hinzufügen. Ich habe allerdings keine Ahnung, wie ich dass angehen soll.

Es wäre nett, wenn mir das jemand mithilfe meines Codes erklären könnte. 😄

PS.: Ja, ich weiß, dass der Code ziemlich chaotisch und optimierungsfähig mit OOP ist. 😄

from tkinter import *
from functools import partial
import time

quests = [
  'first_quest',
  'second_quest',
  'third_quest',
  'fourth_quest'] fenster = Tk() fenster.title('MiniQuiz')
fenster.geometry('800x800')

def welcome(sentence, quest1, quest2, quest3, quest4, result1, result2, result3, result4):
  question = Label(text=sentence)
  question.config(width=1000)
  question.pack()
  a_button = Button(text=quest1, command=result1)
  a_button.pack()
  b_button = Button(text=quest2, command=result2)
  b_button.pack()
  c_button = Button(text=quest3, command=result3)
  c_button.pack()
  d_button = Button(text=quest4, command=result4)
  d_button.pack()

def counter(punkte):
  punktestand = Label(text='Punktestand:')
  counter = Label(fenster, text= punkte)
  punktestand.pack(anchor=NW)
  counter.pack(anchor=NW)

def right():
  output = Label(text='Richtig!')
  output.pack()

  for item in quests:
    if 'first_quest' == quests[0]:
      quests.remove('first_quest')
      second_quest()
    elif 'third_quest' == quests[0]:
      quests.remove('third_quest')
      fourth_quest()

def right2():
  output = Label(text='Richtig!')
  output.pack()

  for item in quests:
    if 'second_quest' == quests[0]:
      quests.remove('second_quest')
      third_quest()

def final():
  output = Label(text= 'Du hast gewonnen! Herzlichen Glückwunsch')
  output.pack()

def wrong():
  output = Label(text='Leider falsch! Viel Glück beim nächsten mal!')
  output.pack()

def first_quest():
  welcome('BEVOR es losgeht: Du kannst einen Button nur einmal anklicken, machst du es öfters kannst du nicht mehr gewinnen! ' 'Frage 1: Was ist das größte Bundesland Deutschlands?', 'Bayern', 'Niedersachsen', 'Nordrhein Westfahlen', 'Schleswig-Holstein', right, wrong, wrong, wrong)

def second_quest():
  counter(1)
  welcome('Frage 2: Welches Atom ist am einfachsten Aufgebaut?', 'Sauerstoff', 'Wasserstoff', 'Helium', 'Atome unterscheiden sich nicht vom Aufbau', wrong, right2, wrong, wrong)

def third_quest():
  counter(2)
  welcome('Frage 3: Welches Spiel hat 1993 die Videospielszene mit seiner 3D Optik "Revolutioniert" ?', 'Counter Strike Source', 'Half-Life', 'Doom', 'Call Of Duty', wrong, wrong, right, wrong)

def fourth_quest():
  counter(3)
  welcome('Frage 4: Wie hieß das erste Lebewesen, welches von Menschen in die Umlaufbahn der Erde befördert wurde?', 'Bruno', 'Neil Armstrong', 'Michael Collins', 'Laika', wrong, wrong, wrong, final)

def winner():
  counter(4)
  output = Label(fenser, text='Du hast gewonnen!')
  output.pack()

first_quest()
fenster.mainloop()
Computer, Internet, programmieren, Python, Tkinter
Python Ladebalken funktioniert nicht?

Hi,

Ich habe mit Python einen Ladebalken für ein kleines GUI erstellt. Dieser Ladebalken soll anzeigen wieviele Dateien schon Kopiert wurden. Wenn ich den Ladebalken herausnehme läuft alles. Wenn ich ihn jedoch einfüge kommen fehlermeldungen und die Dateien werden manchmal nicht korrekt Kopiert. Ich komme mitleiweile nicht mehr weiter und hoffe dass mir hier einer helfen kann.

Lg McCrafterIV

Fehlermeldung:

"C:\Users*\PycharmProjects\MakeBackup\venv\Scripts\python.exe" "C:/Users/*/PycharmProjects/MakeBackup/main.py"

Exception in Tkinter callback

ERROR! Cannot create folder.

ERROR! Cannot copy files.

ERROR! Cannot copy files.

ERROR! Cannot copy files.

Traceback (most recent call last):

File "C:\Users****\AppData\Local\Programs\Python\Python36-32\lib\tkinter__init__.py", line 1702, in __call__

return self.func(*args)

File "C:/Users//PycharmProjects/MakeBackup/main.py", line 112, in <lambda>

save_1_button = Button(fenster, text="Save", command=lambda: save.savedata())

File "C:\Users****\PycharmProjects\MakeBackup\save.py", line 40, in savedata

pb = ttk.Progressbar(fenster, orient='horizontal', length=300, mode='determinate', maximum=line, value=saved)

File "C:\Users****\AppData\Local\Programs\Python\Python36-32\lib\tkinter\ttk.py", line 1014, in __init__

Widget.__init__(self, master, "ttk::progressbar", kw)

File "C:\Users****\AppData\Local\Programs\Python\Python36-32\lib\tkinter\ttk.py", line 559, in __init__

tkinter.Widget.__init__(self, master, widgetname, kw=kw)

File "C:\Users****\AppData\Local\Programs\Python\Python36-32\lib\tkinter__init__.py", line 2296, in __init__

(widgetName, self._w) + extra + self._options(cnf))

_tkinter.TclError: expected floating-point number but got "

"

Process finished with exit code 0

Hier mein Quellcode:

https://gist.github.com/McCrafterIV/682f23b2962153beb7b640d304548dac

Error, Python, ladebalken, GUI, Tkinter
Python Tkinter Punkte auf Kreis erstellen?

https://images.gutefrage.net/media/fragen/bilder/python-tkinter-punkte-auf-kreis-erstellen/0_big.jpg?v=1515952309796"/>

Ich möchte gerne Punkte auf einem Kreis erzeugen, die in immer gleichen Abständen zueinander sind und die Menge der Punkten vareabel ist. Ich nutze dafür Python und Tkinter:

Mein code dazu ist folgender:

from tkinter import *

import math

win=Tk()

win.title("Kreis")

win.geometry("1500x850")

win.configure(background="white")

leinwand = Canvas(win, width=1500, height=850, bg="white")

leinwand.place(x=100, y=100)

r1=100

p=8

wgrd= 360/float(p)

leinwand.create_oval(700-float(r1), 150-float(r1), 700+float(r1), 150+float(r1), fill="white", width=1, outline="black")

for i in range (0,int(p)):

   xp= (float(r1) * math.cos(wgrd*i))+700

   yp= (float(r1) * math.sin(wgrd*i))+150

   leinwand.create_oval(int(xp)-10, int(yp)-10, int(xp)+10, int(yp)+10, fill="red", width=1, outline="red")

Leider haben die roten Punkte bei mir nicht den gleichen Abstand und ich weiß nicht warum. Ich hoffe jmd. kann mir helfen :)

Danke im Voraus! :)

Bild zu Frage
Computer, Mathematik, programmieren, Geometrie, Python, GUI, Tkinter
Wie kann ich in Python (Tkinter) vers. Buttons eine Varaible ändern lassen?

Hallo Leute!!

Also als erstes möchte ich darauf hinweisen, dass ich ein totaler Anfänger bin...D.h. dass ich evtl. auch ziemlich "blöde" Fehler mache/gemacht habe...;D

Jetzt zu meinem Problem: Also ich wollte in Python mit Tkinter ein Radiobutton erstellen, der einen bestimmten Wert (in diesem Fall der Wert 2) in eine Variable speichert.... Das hat aber nicht ganz geklappt...;D Ich habe da ein bisschen was ausprobiert, aber es kommt nicht das gewünschte Ergebniss raus.. Vielleicht ist mein Lösungsansatz auch total falsch...

Also erstmal das Programm:

from tkinter import *

main = Tk()
Material = IntVar()
Material.set(1)


#Funktion der Buttons (Ende)
def ende():
    main.destroy()


#Elemente/Objekte
lb = Label(main, text = "Hier koennen Sie das Material fuer den Boden Ihres Hauses auswaehlen...")
RButton_Stein = Radiobutton(main, text="Stein", variable=Material, value="2")
Button_Ende = Button(main, text = "Auswaehlen", command = ende)

#Anzeigen der Elemente/Objekte
lb.pack()
RButton_Stein.pack()
Button_Ende.pack()


#Endlosschleife
main.mainloop()



print(Material)

Und jetzt die Ausgabe (Shell):

PY_VAR0

Aber eigentlich sollte jetzt in der Variable der Wert 2 stehen...Müsste da dann nicht statt "PY_VAR0" der Wert 2 ausgegeben werden??

Kann mir jemand sagen, was ich falsch mache bzw. wie ich das lösen kann??

Vielen Dank schonmal ;D

programmieren, Python, Tkinter

Meistgelesene Fragen zum Thema Tkinter