Python Problem'chen

09/09/2015 15:46 [Patrick]#1
Hallo,

bin gerade überfragt, weil etwas nicht so funktioniert, wie ich es gern möchte.

Undzwar dieses hier:

Code:
self.itemshop_bar = [[72, 15, 70, 100], [72, 15, 70, 100]]
		
		for i in xrange(len(self.itemshop_bar)):
			itemshop_slotbar = ui.SlotBar()
			itemshop_slotbar.SetParent(self.gmboard)
			itemshop_slotbar.SetSize(self.itemshop_bar[i][0], self.itemshop_bar[i][1])
			itemshop_slotbar.SetPosition(self.itemshop_bar[i][2], self.itemshop_bar[i][3])
			itemshop_slotbar.Show()
Diese SlotBar wird mir nich angezeigt, warum auch immer.
Seht ihr da einen Fehler? Denn mit Buttons funktioniert das Prima..

Code:
self.buttons = [[25, 110, self._Waffen, "Waffen"], [25, 150, self._Ruestungen, "Rüstungen"], [25, 190, self._Schmuck, "Schmuck"], [25, 230, self._Truhen, "Truhen"], [25, 270, self._Pets, "Haustiere"], [25, 310, self._sonstiges, "Sonstiges"]]


		for x in xrange(len(self.buttons)):
			GMButton = ui.Button()
			GMButton.SetParent(self.gmboard)
			GMButton.SetPosition(self.buttons[x][0], self.buttons[x][1])
			GMButton.SetEvent(self.buttons[x][2])
			GMButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
			GMButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
			GMButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
			GMButton.SetText(self.buttons[x][3])
			GMButton.Show()
:o
09/09/2015 15:50 rollback#2
self.itemshop_slotbar

Wenn du das self weglässt sind es lokale Variablen und werden nach Ausführung der Methode vom Garbage-Collector aus dem RAM gelöscht und können dann natürlich auch nicht angezeigt werden

€:
Weil du es in einer Schleife ausführst musst du natürlich jede einzelne Instanz im RAM behalten, ansonsten würdest du natürlich mit jedem Schleifendurchgang wieder die Variable überschreiben.

Code:
		self.itemshop_bar = [[72, 15, 70, 100], [72, 15, 70, 100]]
		self.bars = []
		
		for i in xrange(len(self.itemshop_bar)):
			itemshop_slotbar = ui.SlotBar()
			itemshop_slotbar.SetParent(self.gmboard)
			itemshop_slotbar.SetSize(self.itemshop_bar[i][0], self.itemshop_bar[i][1])
			itemshop_slotbar.SetPosition(self.itemshop_bar[i][2], self.itemshop_bar[i][3])
			itemshop_slotbar.Show()
			
			self.bars.append(itemshop_slotbar)