Python Quiz Tkinter Teil 1 - Ein Spiel programmieren mit Python

preview_player
Показать описание
Heute programmieren wir ein Quiz- spiel mit Python 3 und benutzen dabei tkinter, um eine Benutzeroberfläche zu erstellen.
Falls tkinter noch nicht importiert ist einfach in die cmd "pip install tkinter" oder "python -m pip install tkinter" eingeben.

🤖Python Sachen:🤖
--------------------------------------------------------------------
💸Kostenlos:💸
--------------------------------------------------------------------
🤖Mein Equipment:🤖
(* = Werbelinks)

#Python #Quiz #tkinter #programmieren #lernen #spiel
Рекомендации по теме
Комментарии
Автор

Endlich Tkinter mit pygame konnte ich die ganze Zeit nichts anfangen :D Übrigens ich glaube ich kann das Quiz ohne weitere zusatzinformation schon programmieren. Was bei mir immer das problem ist, ist das ich wenig kreativität besitze und somit nie weiß was ich programmieren soll.

chiefboggel
Автор

Super Tutorial, aaaaber da ich schon ein paar Tutorials geschaut habe, hat mich dein "from tkinter import *" verwirrt und hab danach mal gegooglte und gelesen das man das nicht machen sollte (vielleicht solltest du das auch mit berücksichtigen) Quelle war die Pyhton wiki: Die letzte Option ist ein Stern-Import. Der Stern dient als Platzhalter und signalisiert, dass "alles" aus dem betreffenden Modul importiert werden soll. Dies mag zwar bequem erscheinen, so dass man nicht mehr den Modulnamen vor der Funktion schreiben muss, hat aber den Nachteil, dass bestehende Objekte (Funktionen, Klassen etc.) unbemerkt überschrieben werden können.

Es passiert oft, dass jemand PIL importiert mit import Image und danach noch Tkinter durch ein from Tkinter import * einbindet. Dabei wird aber Image (aus PIL) durch das Image aus Tkinter überschrieben, was sehr oft zu schwer zu verstehenden Fehlern führt. Eine saubere Lösung ist es, Module generell nie mit Stern einzubinden, außer man weiß genau was man tut. So kann man Tkinter auch einfach über import Tkinter as tk importieren, sodass man danach auf tk.Image, tk.Frame usw. zugreift. Sowohl PyGTK als auch wxPython nutzen schon seit längerem Namensräume (import gtk und passenderweise gtk.Window bzw. import wx und wx.App).

User
Автор

Tipp tkinter ist bei denn meisten schon vorinstalliert.
Lässt sich ganz einfach überprüfen, gib einfach bei cmd "python -m tkinter" ein wenn ein Fenster erscheint dann ist es bereits vorhanden.

idrisdiemarcantonio
Автор

Wie bekomme ich es hin, dass ich im Menu zwei Buttons habe, einmal für ein schweres und einmal für ein leichtes Quiz?

BestOfFire
Автор

Immer wenn ich "pip install tkinter" eingebe kommt: "ERROR: Could not find a versions that satisfies the requirement tkinter ( from versions: none)
ERROR: No matching distribution found for tkinter"
Weißt du was ich da machen muss? Ich würde das nämlich gerne programmieren
Danke!

lennylobster
Автор

#kleines Programm um bei linux mit youtube-dl youtube vid downzuloaden.
#Es funktioniert mit pycharm und es funktioniert wenn ich es über den Terminal starte!
#Aber es Funktioniert nicht wenn ich es als Progrmm ausführe! wie kann das sein?
#und vor allem wie kann ich rausfinden was der fehler sein könnte... ? Danke


#!/usr/bin/python3
import tkinter as tk
import os
import subprocess
from tkinter import Tk, Entry, Button, Label, StringVar


#Globale Variable zum mitzählen wie oft was hinzugefügt wird
global Zaehler
Zaehler = 0
global geklickt
geklickt = 0


#Funktion des Downloadbutton
def download(*args):
#value =




#Holt die daten aus dem TextFeld
inhalttextfeld = linkadresseTF.get(1.0, [tk.END])


#fügt die daten in den Terminal ein


value = subprocess.call(["youtube-dl", inhalttextfeld])


#Erzeugt und zeigt Downloadbutton an




#Funktion des HinzufügenButtons
def hinzufügen(*args):
geklickt = 0
while geklickt < 1:
geklickt = geklickt +1
global Zaehler
Zaehler = Zaehler + 1
print(Zaehler)


linkadresseTF = Zaehler
#print(linkadresseTF)
linkadresseTF = tk.Text(height="1")
linkadresseTF.grid(row=0, column=0)
#inhalttextfeld = linkadresseTF.get(0.0, [tk.END])
#print(inhalttextfeld)
#value = subprocess.call(["youtube-dl", inhalttextfeld])




print(geklickt)






#Erzeugt Fenster mit Titel
fenster = tk.Tk()



#Erzeugt und zeigt Downloadbutton an
downlaodbutton = tk.Button(text="Download Video", command = download)
downlaodbutton.grid(row=0, column=2)


#Erzeugt HinzufügenButton
HinzufügenButton = tk.Button(text="Hinzufügen", command = hinzufügen)
HinzufügenButton.grid(row=0, column=1)


#Erzeugt und zeigt Textfeld an
linkadresseTF = tk.Text(height="1")
linkadresseTF.grid(row=0, column=0)




#Zeigt fenster an
fenster.mainloop()

youtubeEXIT
Автор

Kann ich eine Android App von diesem Quiz machen? Danke dir

dariom
Автор

Hier hätte ich noch ein anderes Prob, ich habe gegoogelt aber weis nicht wie man es nennen soll, bei google kommt nix raus. Ich möchte Buttons die ich mit einen Button erstelle, so erstellen das sie im Programm enthalten bleiben also auch nach dem Schließen und wieder öffnen. Ich denke, das muss relative einfach sein, aber ich komm nicht darauf.




das einzige was mir einfällt ist, in die .py selbst den code speichern mit "with open" aber das kommt mir ein wenig zu kompliziert vor muss doch einfacher gehen?
mit write und open hab ich schon geschafft code zu speichern in einer txt, und ich kann ihn auch auslesen, und mit print anzeigen
Aber er wird nicht vom Interpreter angenommen.
zb inhaltdertxt = open(script.txt, r)
print(inhaltdertxt) dann steht da der code drinnen. (tk.Button(text="button").grid(row=0, column=0))
aber wenn ich schreiben
Button = inhaltdertxt
dann erstellt er den button nicht.






hier der code, (ohne den open sachen) vielleicht kannst es dir dann besser vorstellen:




import tkinter as tk




#globale variablen
global verschieben
verschieben =0
global counter
counter = 0
global position
position = 0




#fenster erstellen
Fenster = tk.Tk()
Fenster.geometry("1000x150")




#frame erstellen
KanalFrame = tk.Frame(Fenster, relief="groove", bd=10, width=1900, height=100)
KanalFrame.place(x=verschieben, y= 5)




#bewegt nach rechts
def rechts():
global verschieben
verschieben = verschieben +50
KanalFrame.place(x=verschieben, y= 5)
print("rechts")








#bewegt nach links
def links():
global verschieben
verschieben = verschieben -50
KanalFrame.place(x=verschieben, y= 5)
print("links")




#hinzufügen von kanälen
def hinzufügen():
global position




counter = 0
while counter == 0:




KanalButton = tk.Button(KanalFrame, text="Kanalname", width=7, height=5)
KanalButton.grid(row=0, column = position)
counter = counter + 1
position = position +1




print("hinufügen")












#erstellen der Buttons




rechtButton = tk.Button(text="rechts", command=rechts)
rechtButton.place(x=940, y = 60)
linksButton = tk.Button(text="links", command = links)
linksButton.place(x=0, y=60)
hinzufügenButton = tk.Button(text="hinzufügen", command = hinzufügen)
hinzufügenButton.place(x=850, y= 120)
















#starte fenster




Fenster.mainloop()

youtubeEXIT