So sieht dann meine Update Funktion und mainWindow klasse aus
Code: Alles auswählen
class mainWindow:
def __init__(self, parent):
pass
def __call__(self, parent):
self.gauge1 = digitalGauge(root, 0, 1, measuredItemsColor[0], measuredItemsValue[0], 500, measuredItems[0], 0.9)
self.gauge2 = digitalGauge(root, 5, 1, measuredItemsColor[1], measuredItemsValue[1], 500, "Breite", 0.9)
self.gauge3 = digitalGauge(root, 6, 1, measuredItemsColor[2], measuredItemsValue[2], 500, "Hoehe", 0.9)
self.gauge4 = digitalGauge(root, 7, 1, measuredItemsColor[1], 2000, 6000, measuredItems[1], 0.9)
def update(self):
self.gauge1.update(measuredItemsValue[0])
self.gauge2.update(measuredItemsValue[1])
self.gauge3.update(measuredItemsValue[2])
self.gauge4.update(measuredItemsValue[3])
class digitalGauge:
def __init__(self, window, row, column, color, value, maxVal, name, gaugeScale):
self.G = Canvas(window, bg="black", height=100, width=100)
if (row <= 4):
self.G.grid(column=column, row=row, sticky="WENS", rowspan=5)
else:
self.G.grid(column=column, row=row, sticky="WENS")
self.xval = 20
self.yval = 10
self.maxVal = maxVal
self.coord = self.xval + 5, self.yval + 5, (self.xval + 100) * gaugeScale, (self.yval + 100) * gaugeScale
self.gaugeValue = maxVal / float(value) # calculate the GaugeValue
self.hand = self.G.create_arc(self.xval, self.yval, (self.xval + 100 * gaugeScale),
(self.yval + 100 * gaugeScale), start=0,
extent=-(220 / self.gaugeValue), fill=color) # Draw hand
self.outline = self.G.create_arc(self.xval - 3, self.yval - 3, (self.xval + 100 * gaugeScale + 3),
(self.yval + 100 * gaugeScale + 3), start=0, extent=-220, style="arc",
outline="white", width=2) # draw outline
self.valueBox = self.G.create_rectangle((self.xval + 50 * gaugeScale), self.yval + 20 * gaugeScale,
self.xval + 100 * gaugeScale + 3, self.yval + 50 * gaugeScale,
outline='white',
width=2) # draw Value Box
self.value1 = self.G.create_text(self.xval + 54 * gaugeScale, self.yval + 22 * gaugeScale, anchor="nw",
text=value,
fill="white", font=(textFont, int(round(15 * gaugeScale))))
self.value2 = self.G.create_text(self.xval, self.yval - 8, anchor="nw", text=name, fill="white",
font=(textFont, int(round(19 * gaugeScale))))
def update(self, valueUpdated):
self.G.itemconfig(self.value1, text=valueUpdated)
self.gaugeValue = self.maxVal / float(valueUpdated)
self.G.itemconfig(self.hand, extent=-(220 / self.gaugeValue))