Cerere functie din ui.py

Închis
Avatar utilizator
SkyLine
Membru Club

Membru Club
Mesaje: 2655
Membru din: 12 Dec 2013, 23:37
Server: Miraj2-Online
Regat: Jinno
Aprecieri: 520  
Mulţumiri: 987  
Discord: Copiază ID
 Contact:
Medalii

Neata. Are careva class-ul UnfoldListBox2 in ui.py ... ?

Nu o gasesc in orice svf am cautat-o pana acum :/

Mersi cui o gaseste si-mi poate da..
Avatar utilizator
LoTTrYY
Membru Club

Membru Club
Mesaje: 363
Membru din: 13 Noi 2020, 15:31
Server: WoG2.net
Regat: Jinno
Aprecieri: 425  
Mulţumiri: 436  
 Contact:
Medalii

Posibil sa fie o functie facuta separat , pentru functionarea unui system... daca nu ai gasit-o pana acuma.
PS: am cautat si eu in marty cumparat.. si nu exista asa ceva.
Daca doresti un server pvp clasic , cu systeme la zi si un staff matur [Adica eu :))] .. puteti incerca https://wog2.net/ . Va doresc o zi frumoasa in continuare.
Afișează semnătura
Avatar utilizator
SkyLine
Membru Club

Membru Club
Mesaje: 2655
Membru din: 12 Dec 2013, 23:37
Server: Miraj2-Online
Regat: Jinno
Aprecieri: 520  
Mulţumiri: 987  
Discord: Copiază ID
 Contact:
Medalii

Am gasit-o, pana la urma, chiar in topicul respectiv. Pentru cine va mai avea nevoie de ea:

Cod: Selectaţi tot

class UnfoldListBox2(Window):
 
	def __init__(self, layer = "UI"):
		Window.__init__(self, layer)
		self.width = 0
		self.height = 0
		self.basePos = 0
		self.xDif = 0
		self.yDif = 0
		self.showObjCount = 0
		self.showLineCount = 0
		self.fullLineCount = 0
		self.scrollPos = 0
		self.objList = []
 
		self.scrollBar = ScrollBar()
		self.scrollBar.SetParent(self)
		self.scrollBar.SetScrollEvent(self.OnScroll)
		self.scrollBar.Hide()
 
	def __del__(self):
		Window.__del__(self)
 
	def OnScroll(self):
		import math
		if self.fullLineCount <= 0 or self.showLineCount == self.fullLineCount:
			self.scrollPos = 0
			self.SetBasePos(0)
			return
		pos = self.scrollBar.GetPos()
		itempos = math.floor(float(pos) / float(float(1) / float(self.fullLineCount - self.showLineCount)) + 0.001)
		if itempos != self.scrollPos:
			self.scrollPos = itempos
			self.SetBasePos(itempos)
 
	def SetWidth(self, width):
		self.SetSize(width, self.height)
 
	def SetSize(self, width, height):
		Window.SetSize(self, width, height)
		self.width = width
		self.height = height
		self.scrollBar.SetScrollBarSize(self.height)
		self.scrollBar.SetPosition(self.width - self.scrollBar.GetWidth(), 0)
 
	def SetXDif(self, xDif):
		self.xDif = xDif
		self.LocateItem()
 
	def SetYDif(self, yDif):
		self.yDif = yDif
		self.LocateItem()
 
	def SetBasePos(self, pos):
		self.basePos = pos
		self.LocateItem(False)
 
	def ClearItem(self):
		for obj in self.objList:
			obj.Hide()
 
		self.objList = []
		self.scrollBar.SetPos(0)
 
	def InsertItem(self, obj, doLocate = True):
		obj.SetParent(self)
		self.objList.append(obj)
 
		if doLocate:
			self._LocateItem()
 
	def LocateItem(self, reloadScrollBar=True):
		self._LocateItem(reloadScrollBar)
 
	def _LocateItem(self, reloadScrollBar=True):
		import math
		skipCount = self.basePos
		yPos = 0
		xPos = 0
		if reloadScrollBar:
			self.showObjCount = 0
			self.showLineCount = 0
			self.fullLineCount = 0
 
		if len(self.objList) > 0:
			self.objPerLine = int(float(self.width-self.scrollBar.GetWidth()) / (self.objList[0].GetWidth()+self.xDif))
 
		for obj in self.objList:
			obj.Hide()
 
 
			if skipCount > 0:
				xPos += obj.GetWidth()+self.xDif
				if xPos-self.xDif > self.width-self.scrollBar.GetWidth():
					xPos = obj.GetWidth()+self.xDif
					skipCount -= 1
					if skipCount > 0:
						continue
					else:
						xPos = 0
				else:
					continue
 
			xPos += obj.GetWidth()+self.xDif
			if xPos-self.xDif > self.width-self.scrollBar.GetWidth():
				xPos = obj.GetWidth()+self.xDif
				yPos += obj.GetHeight()+self.yDif
 
			if reloadScrollBar:
				if xPos-obj.GetWidth()-self.xDif == 0:
					self.fullLineCount += 1
					if yPos+obj.GetHeight() <= self.height:
						self.showLineCount += 1
 
			obj.SetPosition(xPos-obj.GetWidth()-self.xDif, yPos)
 
			if yPos+obj.GetHeight() <= self.height:
				self.showObjCount += 1
				obj.Show()
 
		if reloadScrollBar:
			if self.showObjCount < len(self.objList):
				self.scrollBar.SetMiddleBarSize(float(self.showLineCount)/self.fullLineCount)
				self.scrollBar.Show()
			else:
				self.scrollBar.Hide()
 
	def ArrangeItem(self):
		self.SetSize(self.width, len(self.objList) * self.stepSize)
		self._LocateItem()
 
	def GetViewObjectCount(self):
		return self.showObjCount
 
	def GetObjectCount(self):
		return len(self.objList)
[code/]
Avatar utilizator
NewHero
Fost Moderator

Fost Moderator
Mesaje: 1331
Membru din: 24 Iun 2014, 00:44
Server: Metin2NewHero
Regat: Jinno
Aprecieri: 215  
Mulţumiri: 35  
Discord: Copiază ID
 Contact:
Medalii

Subiect marcat ca fiind rezolvat.
În curând un nou server de Metin2 level 250.
Votați doar dacă v-ar interesa să jucați pe un server de mai jos.
Strawpoll:https://strawpoll.com/u5h4uz6cp/
Website(În curând online):https://metin2newhero.ro/
Server discord M2NH:https://discord.gg/PAwehr4
Afișează semnătura
Închis
Răspunsuri
3
Vizualizări
281
Răspunsuri
9
Vizualizări
1087
Răspunsuri
6
Vizualizări
584
Răspunsuri
2
Vizualizări
319

Înapoi la “Cereri Rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori