végtelen gomb használat

Indította T0gy3R, 2017-07-27, 11:17:58

Sziasztok.!
Eddig úgy nagyon elkerülte a figyelmem az, hogy ha megnyitom egyszer egy gombbal a rendszert, akkor ha még egyszer rákattintok ugyan úgy megnyitja. Ezt próbáltam egy már meglévő gomb alapján lemásolni, hogy ne nyissa meg csak 1x, de nem igazán sikerült.
Alapvetően ez nyitja meg a rendszert.

def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
self.wndRoulette.Open()


Ezt megpróbáltam "def ToggleDragonSoulWindow(self):" alapján így:
def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
if False == self.wndRoulette.IsShow():
self.wndRoulette.Open()
else:
self.wndRoulette.Hide()

A Hide() helyett próbáltam Close()-al is, de az sem oldotta meg a bajom, sajnos továbbra is többször meg lehet nyitni.
Végeredményében nekem mindegy, hogy bezárja, vagy csak nem nyitja meg még egyszer. A lényeg az lenne, hogy ne nyissa meg egynél többször egyszerre.

Erre valaki tudna építőjellegű ötletet adni? :)

2017-07-27, 11:37:59 #1 Utolsó szerkesztés: 2017-07-27, 12:19:29 Szerző: TrueLev
Ahogy nézem a sárkány rulett-et akarod, én is betettem nemrég. Nekem olyan ha megvan nyitva, még1x megakarja, akkor bezárja.  :o Mingy ránézek a kódra nálam hogy van.

Game.py-be ez van amikor megkapja a szervertől a command-ot: (Lehet te nem npc-re tetted, mind1)

def __ru_open (self):
self.Roulette.Open()


uiroulett.py-be meg ez: (Ez a fontos!)

def Open(self):
if self.IsShow():
self.RouletteBoard.Hide()
self.Loaded = 0
self.Hide()
return
self.OpenRouletteBoard()


Tehát próbáld te is a Def Open-be hasonlóan megcsinálni.

-------------------------------

Szerk: Mutatok még egy megoldást, bár ez lehet elég gagyi, de én sok dolognál így csináltam meg:

constinfo.py-be valahova felülre az importok alá írd be ezt:
VALAMI1 = 0

def ToggleDragonRouletteWindow(self): meg legyen így:

def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
if constInfo.VALAMI1 == 0:
self.wndRoulette.Open()
constInfo.VALAMI1 = 1
elif constInfo.VALAMI1 == 1:
self.wndRoulette.Hide()
constInfo.VALAMI1 = 0


+ ahol ez van felül legyen ott az import constInfo és kész.

az uiroulette.py-mben nekem is megvan ez:
def Open(self):
if self.IsShow():
self.RouletteBoard.Hide()
self.Loaded = 0
self.Hide()
return
self.OpenRouletteBoard()


Ezért nem is értettem, hogy miért nem zárja be.
Nekem ez expanded taskbar-ban van megírva, ehhez pedig nem game.py-t használtam, hanem itnerfacemodule.py-t. Nem tudom ez mennyire befolyásolja a dolgokat, hiszen, ha megnyitja, akkor elvileg be is kéne, hogy zárja nem?

Esetleg próbáld meg a másik megoldást amit írtam, nekem rengeteg dolog van az inventory-ra írva, majdnem mindnél így csináltam ahol buggos volt.

constinfo.py:
Rulett = 0

ifm.py:
def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
if constInfo.Rulett == 0:
self.wndRoulette.Open()
constInfo.Rulett = 1
elif constInfo.Rulett == 1:
self.wndRoulette.Hide()
constInfo.Rulett = 0


és mégis megnyitja többször, illetve nem is zárja be :|

ifm.py-be van import constInfo felül?


a roulett fájljában lesz az osztály.show() függvény, ami minden alkalommal megnyitja.