Ich bin mir nicht ganz sicher, wie ich meine Frage in einem Satz formulieren soll. Ich benutze Python, um einen Kalender mit der Fähigkeit zu erstellen, Meilen für Athleten zu protokollieren. Ich habe einen Kalender erstellt, der ein 7x4-Gitter enthält, das die Nummer des Monats in der oberen linken Ecke und eine Schaltfläche in der Mitte enthält, die "Log today's workout" sagt.Die gleiche Schaltfläche mit dem gleichen Befehl an mehreren Stellen einfügen, aber mit eindeutigen Funktionen
Die Schaltfläche soll ein neues Fenster öffnen, in dem der Benutzer die Laufleistung eingeben kann und wie schnell und wenn der Benutzer am unteren Rand des neuen Fensters "log" drückt, sollte die Laufleistung und die Geschwindigkeit angezeigt werden der Tag, an dem die Taste gedrückt wurde.
Mein Problem ist, dass ich nicht herausfinden kann, wie man nur den bestimmten Tag ersetzt, der mit den Informationen angeklickt wurde. weil ich keinen Knopf für jeden Tag des Monats machen wollte, habe ich den gleichen Knopf (zusammen mit dem gleichen Befehl) an jedem Tag. Ich brauche den Knopf, um zu wissen, wo im Raster es ist, und in der Lage zu sein, dem Etikett zu sagen, wo man mit dem Kilometerstand und dem Tempo platziert werden soll.
Ich habe versucht, Lambda zu erforschen, um zu sehen, ob es helfen würde, aber ohne Erfolg. hier sind relevante Teile meines Codes (immer noch ziemlich neu für Python, wahrscheinlich ein wenig schlampig, ich entschuldige mich).
count = 0 #Code for button on every day in the month
dayCounter = numDays[0]
rowCount = 3
while (numDays[1] > count):
count = count + 1
logButton = Button(self, text=("Log Today's Workout"), command = self.log)
logButton.grid(column=dayCounter, row=rowCount)
if dayCounter == 6:
rowCount = rowCount + 1
if dayCounter <= 5:
dayCounter = dayCounter + 1
else:
dayCounter = 0
def calculate(self):
displayPace = Label(self, text= paceMin + ":" + formattedSec + " a mile.")
displayPace.grid(column=???, row=???)
Ich habe eine Menge Code weggelassen. Was angezeigt wird, ist der Code, mit dem man jeden Tag eine Taste drücken kann, und der Code, mit dem die Geschwindigkeit im Kalender angezeigt wird. Ich habe versucht, einige Dinge in Reihe und Spalte zu platzieren. Ich erhalte meistens Fehlermeldungen, oder er legt dasselbe Etikett in jede einzelne Box. Ich muss wissen, wie man den Knopf ändert oder was man in Reihe und Spalte setzt, um nur den Knopf zu ersetzen, der geklickt wird. Wenn noch etwas benötigt wird, werde ich das sehr häufig überprüfen und werde oft aktualisiert.
Bitte bearbeiten Sie Ihren Code bis zu [MCVE] (http://stackoverflow.com/help/mcve) und teilen Sie uns genau mit, was Sie zu tun haben, wie Sie es tun und was tatsächlich passiert. – TigerhawkT3
Entschuldigung, die erste Frage, die ich gestellt habe. ist die neue Frage besser? @ TigerhawkT3 –
In while (numDays [1]> count) ', wo änderst du entweder 'numDays [1]' oder 'count'? Und Sie suchen vielleicht nach etwas [http://stackoverflow.com/questions/7546285/creating-lambda-inside-a-loop]. – TigerhawkT3