Ich konnte keine funktionierende Antwort für diese Frage finden, die ich habe. Ich möchte eine Python-GUI erstellen, die Gesundheit, Schaden/Schuss, Feuerrate, Zeit zum Töten, Schüsse zum Töten, so ziemlich jede Variable in diesem Code anzeigt, aber ich habe keine Ahnung, wie ich das konstruiere, was ich brauche. Es muss ein einfaches Fenster mit einem farbigen Balken (wie ein prozentualer Download-Balken) in der Mitte mit einem Knopf darunter sein, um die Simulation zu aktivieren (wie schnell würde der Tod tatsächlich mit dieser speziellen Waffe geschossen werden) und Beschriftungen oben in einem Art von Liste. Wenn der Balken leer ist (von voller Gesundheit auf Null in Echtzeit), muss er bleiben, also brauche ich auch eine Schaltfläche, um die Simulation mit denselben Variablenwerten zu aktualisieren. Hier ist mein Code (das ist genau das, was ich brauche es den GUI-Teil zu tun, speichern):Build und Update GUI Status/Fortschrittsbalken
#import module for update frequency
import threading
#user inputs health
health = float(input("Enter health:"))
#user inputs how much damage each bullet does
dps = float(input("Enter Damage per shot:"))
#user inputs the fire rate of the weapon
spm = float(input("Enter Fire Rate:"))
#from user inputs establish how many shots it takes to reduce health to or below zero
if ((health/dps).is_integer()) is False: #checks if the stk value will be a float
stk = int(health/dps) + 1 #since stk value is a float go up to next whole number. 33dps doesn't kill in 3 shots.
else: #if stk value is an integer, establishes stk variable
stk = health/dps
delay_in_seconds = float(60/spm)
#establishes the time to kill in seconds, take one from stk to account for delay of gunfire
ttk = ((stk - 1) * delay_in_seconds)
#test on how to test for frequency of updating GUI once I figure out how in the heck to build it
def DPS_Timer():
threading.Timer(float((ttk/stk)), DPS_Timer).start()
#calls my god forsaken function
DPS_Timer()
Jede GUI-Modul genügt, ich versuche, mit Tkinter und es funktionierte nie für mich. Ich habe auch die Tkinter-Dokumentation für Python 2.7.13 gelesen und konnte nicht genau herausfinden, was ich tun musste. Wenn zum Beispiel 4 Schüsse benötigt wurden, um einen gegnerischen Spieler zu töten, und diese 4 Schüsse über eine Minute verstrichen sind, müsste diese Fortschritts-/Statusleiste alle (ttk/stk) Sekunden (Gesundheit/Stk)% reduzieren. also bei 100 Gesundheit, 25% alle 15 Sekunden.
Ihre Frage ist ein bisschen komplex und kann hier nicht gründlich beantwortet werden. Ich persönlich benutze PyQt5. Es gibt einen Designer (http://pyqt.sourceforge.net/Docs/PyQt5/designer.html), wo Sie alle gewünschten Ladebalken und Drucktasten mit Ihrer Maus platzieren können. Dann müssen Sie jedes mit Ihren Funktionen verknüpfen. Wenn Sie noch nie eine GUI geschrieben haben, seien Sie auf die Lernkurve vorbereitet. Es könnte einfacher sein, Designer nicht zu verwenden, wenn Sie mit "blindem Zeichnen" einverstanden sind. – Wli