Funcţie buton

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Avatar utilizator
CristianDrăgan1
Nivel 1

Nivel 1
Mesaje: 112
Membru din: 12 Ian 2018, 21:56
Regat: Jinno
Aprecieri: 82  
Mulţumiri: 6  
Medalii

*Problemă/Întrebare: Funcţie buton
Tipologie server: -
*Resursă folosită: sursa/calendar-evenimente-origins2-style-t92789.html
*ServerFiles utilizat: -
*Syserr: -
Poză: -
*Detalii suplimentare:
Mă chinui de câteva ore cu o amărâtă de funcţie care tot nu-mi iese.
Ideea este că am făcut un buton pe taskbar care funcţionează cum trebuie cu funcţia lui Hades:
	def ToggleCalendarWindow(self):
		import uicalendar
		self.calendar = uicalendar.listaCalendar()
		self.calendar.Open()
însă pot deschide calendarul până când crapă clientul.

Am încercat să-mi fac singur o funcţie (mult spus) care să rezolve problema asta, însă nu vrea. Îl deschide în continuare de enşpemii de ori:
	def ToggleCalendarWindow(self):
		import uicalendar
		self.calendar = uicalendar.listaCalendar()
		if self.calendar.IsShow():
			self.calendar.Show()
		else:
			self.calendar.Hide()
Aceeaşi problema o am şi la switchbot, dar dacă mă ajută cineva cu aceasta, o voi avea ca model.
interfacemodule.py:
uicalendar.py:

Mulţumesc anticipat!
Avatar utilizator
CristianDrăgan1
Nivel 1

Nivel 1
Mesaje: 112
Membru din: 12 Ian 2018, 21:56
Regat: Jinno
Aprecieri: 82  
Mulţumiri: 6  
Medalii

Sus
Avatar utilizator
CristianDrăgan1
Nivel 1

Nivel 1
Mesaje: 112
Membru din: 12 Ian 2018, 21:56
Regat: Jinno
Aprecieri: 82  
Mulţumiri: 6  
Medalii

SUS
Avatar utilizator
CristianDrăgan1
Nivel 1

Nivel 1
Mesaje: 112
Membru din: 12 Ian 2018, 21:56
Regat: Jinno
Aprecieri: 82  
Mulţumiri: 6  
Medalii

SUS
Avatar utilizator
.ShadoW
Nivel 4

Nivel 4
Mesaje: 659
Membru din: 14 Noi 2013, 17:54
Server: not yet..
Regat: Jinno
Aprecieri: 379  
Mulţumiri: 32  
Medalii

	def ToggleCalendarWindow(self):
		import uicalendar
		self.calendar = uicalendar.listaCalendar()
		if self.calendar.IsShow():
			self.calendar.Show()
		else:
			self.calendar.Hide()
nu cumva trebuia sa fie asa?
	def ToggleCalendarWindow(self):
		import uicalendar
		self.calendar = uicalendar.listaCalendar()
		if self.calendar.IsShow():
			self.calendar.Close()
		else:
			self.calendar.Open()
si la Close() sau Open()
depinde de ce functie ai in uicalendar, daca are Close sau Hide, le modifici tu
zic si eu, daca o luam logic :))
Ultima oară modificat 02 Iul 2020, 15:02 de către .ShadoW, modificat 1 dată în total.
Imagine
Afișează semnătura
Avatar utilizator
CristianDrăgan1
Nivel 1

Nivel 1
Mesaje: 112
Membru din: 12 Ian 2018, 21:56
Regat: Jinno
Aprecieri: 82  
Mulţumiri: 6  
Medalii

Am încercat şi aşa... nimic.
Avatar utilizator
.ShadoW
Nivel 4

Nivel 4
Mesaje: 659
Membru din: 14 Noi 2013, 17:54
Server: not yet..
Regat: Jinno
Aprecieri: 379  
Mulţumiri: 32  
Medalii

CristianDrăgan1 scrie: ↑02 Iul 2020, 15:02 Am încercat şi aşa... nimic.
ciudat...
Imagine
Afișează semnătura
Avatar utilizator
Ionuţ
Web Master

Web Master
Mesaje: 1001
Membru din: 02 Sep 2013, 14:41
Server: Metin2CMS
Regat: Jinno
Aprecieri: 88  
Mulţumiri: 471  
Discord: Copiază ID
 Contact:
Medalii

Modificări în uicalendar.py

Cod: Selectaţi tot

class listaCalendar(ui.BoardWithTitleBar):
	isOpened = False
	
	.................................................
	
	def IsOpened(self):
		self.isOpened= not self.isOpened
		return not self.isOpened
Folosire:

Cod: Selectaţi tot

	#un singur apel
	import uicalendar
	self.calendar = uicalendar.listaCalendar()
	
	def ToggleCalendarWindow(self):
		if self.calendar.IsOpened():
			self.calendar.Hide()
		else:
			self.calendar.Show()
Edit: mi-am dat seama că tu tot apelezi uicalendar.listaCalendar(), nu e ok, mereu se ia ca și cum ar fi la primul apel. Trebuie să setezi self.calendar în afara funcției ToggleCalendarWindow().
Ultima oară modificat 02 Iul 2020, 16:09 de către Ionuţ, modificat 1 dată în total.
Pentru acest mesaj, Ionuţ for the post:
CristianDrăgan1
Proiectele mele

Imagine
Afișează semnătura
Avatar utilizator
CristianDrăgan1
Nivel 1

Nivel 1
Mesaje: 112
Membru din: 12 Ian 2018, 21:56
Regat: Jinno
Aprecieri: 82  
Mulţumiri: 6  
Medalii

Ionuţ scrie: ↑02 Iul 2020, 15:23 Modificări în uicalendar.py

Cod: Selectaţi tot

class listaCalendar(ui.BoardWithTitleBar):
	isOpened = False
	
	.................................................
	
	def IsOpened(self):
		self.isOpened= not self.isOpened
		return not self.isOpened
Folosire:

Cod: Selectaţi tot

	#un singur apel
	import uicalendar
	self.calendar = uicalendar.listaCalendar()
	
	def ToggleCalendarWindow(self):
		if self.calendar.IsOpened():
			self.calendar.Show()
		else:
			self.calendar.Hide()
Edit: mi-am dat seama că tu tot apelezi uicalendar.listaCalendar(), nu e ok, mereu se ia ca și cum ar fi la primul apel. Trebuie să setezi self.calendar în afara funcției ToggleCalendarWindow().
Mulţumesc pentru răspuns! Am încercat astfel, însă acum nu-l deschide, şi nu primesc nicio eroare în syserr.
Avatar utilizator
Ionuţ
Web Master

Web Master
Mesaje: 1001
Membru din: 02 Sep 2013, 14:41
Server: Metin2CMS
Regat: Jinno
Aprecieri: 88  
Mulţumiri: 471  
Discord: Copiază ID
 Contact:
Medalii

CristianDrăgan1 scrie: ↑02 Iul 2020, 15:38 Mulţumesc pentru răspuns! Am încercat astfel, însă acum nu-l deschide, şi nu primesc nicio eroare în syserr.
Greșeala mea:

Cod: Selectaţi tot

	def ToggleCalendarWindow(self):
		if self.calendar.IsOpened():
			self.calendar.Hide()
		else:
			self.calendar.Show()
Pentru acest mesaj, Ionuţ for the post:
CristianDrăgan1
Proiectele mele

Imagine
Afișează semnătura
Închis
Răspunsuri
3
Vizualizări
141
Răspunsuri
3
Vizualizări
225
Răspunsuri
4
Vizualizări
481
Răspunsuri
2
Vizualizări
280

Înapoi la “Probleme rezolvate”

  • Informaţie