Yardım object has no attribute

  • Konuyu açan Konuyu açan sametgkdn
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 1K
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

sametgkdn

Üye
Üye
Mesaj
103
Çözümler
4
Beğeni
13
Puan
434
Ticaret Puanı
0
Merhabalar arkadaşlar iyi forumlar.

Syserr:
Genişlet Daralt Kopyala
0716 23:01:12593 ::   File "networkModule.py", line 247, in SetGamePhase

0716 23:01:12594 ::   File "game.py", line 107, in __init__

0716 23:01:12594 ::   File "uiTarget.py", line 441, in __init__

0716 23:01:12594 :: AttributeError
0716 23:01:12594 :: :
0716 23:01:12594 :: 'TargetBoard' object has no attribute 'OnPressedInfoButton'
0716 23:01:12594 ::

Bu syserr de
Tooltip:
Genişlet Daralt Kopyala
        if app.ENABLE_SEND_TARGET_INFO:
            infoButton = ui.Button()
            infoButton.SetParent(self)
            infoButton.SetUpVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
            infoButton.SetOverVisual("d:/ymir work/ui/pattern/q_mark_02.tga")
            infoButton.SetDownVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
            infoButton.SetEvent(ui.__mem_func__(self.OnPressedInfoButton))
            infoButton.Hide()

            infoBoard = self.InfoBoard()
            infoBoard.Hide()
            infoButton.showWnd = infoBoard

        closeButton.SetEvent(ui.__mem_func__(self.OnPressedCloseButton))
        closeButton.Show()

Bu kod bloğu için hata vermektedir. Yardımcı olur musunuz?

hata veren satırımız ise "infoButton.SetEvent(ui.__mem_func__(self.OnPressedInfoButton))"

burasıdır.
 
En son bir moderatör tarafından düzenlenmiş:
Kod bloğunu eklerken çift tırnaklardan kaynaklanan sorun nedeniyle yorum yazma kısmı çalışmıyordu. Tarayıcı konsoluna bakınca fark ettim. Mesajınızı düzenledim.

Soruna gelirsek. OnPressedInfoButton adında fonksiyon tanımlı mı?
 
Kod bloğunu eklerken çift tırnaklardan kaynaklanan sorun nedeniyle yorum yazma kısmı çalışmıyordu. Tarayıcı konsoluna bakınca fark ettim. Mesajınızı düzenledim.

Soruna gelirsek. OnPressedInfoButton adında fonksiyon tanımlı mı?
Hangi dosyaya tanımlıyorduk kontrolleri sağlamak açısından soruyorum?
 
Kod bloğuna tooltip yazmışsınız. Eklediğiniz kodlara bakınca bu dosyaya eklemeniz gerekiyor. uiTarget.py 441. satırda yer alan kodları da ekleyebilir misiniz
 
infoButton.SetEvent(ui.__mem_func__(self.OnPressedInfoButton))

Bu şekilde görev ataması yapılmış ama bu görev ataması için gereken fonksiyon, class TargetBoard içinde yok diyor.

uitarget.py içinde;
Python:
Genişlet Daralt Kopyala
def OnPressedCloseButton(self):
    player.ClearTarget()
    self.Close()

Bunu aratıp altına def OnPressedInfoButton adında bir fonksiyon eklenmesi gerekiyor.
Eklemen gereken fonksiyonun ne şekilde olacağını biz bilemeyiz. Fileste hangi target info sistemi ekliyse onun anlatım dosyalarında vardır.
 
infoButton.SetEvent(ui.__mem_func__(self.OnPressedInfoButton))

Bu şekilde görev ataması yapılmış ama bu görev ataması için gereken fonksiyon, class TargetBoard içinde yok diyor.

uitarget.py içinde;
Python:
Genişlet Daralt Kopyala
def OnPressedCloseButton(self):
    player.ClearTarget()
    self.Close()

Bunu aratıp altına def OnPressedInfoButton adında bir fonksiyon eklenmesi gerekiyor.
Eklemen gereken fonksiyonun ne şekilde olacağını biz bilemeyiz. Fileste hangi target info sistemi ekliyse onun anlatım dosyalarında vardır.
İlginiz için teşekkürler ofisteyim şuanda akşam eve geçtiğimde kontrol edeceğim.
 
İlginiz için teşekkürler ofisteyim şuanda akşam eve geçtiğimde kontrol edeceğim.
Arkadaşlar merhabalar. Bu şekilde düzenledim ve başka bir hata ile karşılaştım.
NoneType:
Genişlet Daralt Kopyala
0718 15:23:13090 ::   File "networkModule.py", line 247, in SetGamePhase

0718 15:23:13091 ::   File "game.py", line 107, in __init__

0718 15:23:13091 ::   File "uiTarget.py", line 518, in __init__

0718 15:23:13091 ::   File "uiTarget.py", line 650, in ResetTargetBoard

0718 15:23:13091 :: AttributeError
0718 15:23:13091 :: :
0718 15:23:13091 :: 'NoneType' object has no attribute 'Hide'
0718 15:23:13091 ::
Yardımcı olursaniz sevinirim. İyi forumlar

uitarget.py:
Genişlet Daralt Kopyala
        self.ResetTargetBoard()

    if app.ENABLE_SEND_TARGET_INFO:
        def RefreshMonsterInfoBoard(self):
            if not self.infoButton.showWnd.IsShow():
                return

            self.infoButton.showWnd.Refresh()

        def OnPressedInfoButton(self):
            net.SendTargetInfoLoad(player.GetTargetVID())
            if self.infoButton.showWnd.IsShow():
                self.infoButton.showWnd.Close()
            elif self.vnum != 0:
                self.infoButton.showWnd.Open(self, self.vnum)

    def __del__(self):
        ui.ThinBoard.__del__(self)

        print "===================================================== DESTROYED TARGET BOARD"

    def __Initialize(self):
        self.nameString = ""
        self.nameLength = 0
        self.vid = 0
        self.isShowButton = False

    def Destroy(self):
        self.eventWhisper = None
        self.closeButton = None
        self.showingButtonList = None
        self.buttonDict = None
        self.name = None
        self.hpGauge = None
        if app.ENABLE_VIEW_TARGET_DECIMAL_HP:
            self.hpDecimal = None
        self.__Initialize()

#        if app.ENABLE_SEND_TARGET_INFO:
#            self.infoButton.showWnd.Close()

    def OnPressedCloseButton(self):
        player.ClearTarget()
        self.Close()

    def Close(self):
        self.__Initialize()
        self.Hide()

        if app.ENABLE_SEND_TARGET_INFO:
            self.infoButton.showWnd.Close()

    def Open(self, vid, name):
        if vid:
            if not constInfo.GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD():
                if not player.IsSameEmpire(vid):
                    self.Hide()
                    return

            if vid != self.GetTargetVID():
                self.ResetTargetBoard()
                self.SetTargetVID(vid)
                self.SetTargetName(name)

            if player.IsMainCharacterIndex(vid):
                self.__ShowMainCharacterMenu()      
            elif chr.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(self.vid):
                self.Hide()
            else:
                self.RefreshButton()
                self.Show()
        else:
            self.HideAllButton()
            self.__ShowButton(localeInfo.TARGET_BUTTON_WHISPER)
            self.__ShowButton("VOTE_BLOCK_CHAT")
            self.__ArrangeButtonPosition()
            self.SetTargetName(name)
            self.Show()
           
    def Refresh(self):
        if self.IsShow():
            if self.IsShowButton():          
                self.RefreshButton()      

    def RefreshByVID(self, vid):
        if vid == self.GetTargetVID():          
            self.Refresh()
           
    def RefreshByName(self, name):
        if name == self.GetTargetName():
            self.Refresh()

    def __ShowMainCharacterMenu(self):
        canShow=0

        self.HideAllButton()

        if player.IsMountingHorse():
            self.__ShowButton(localeInfo.TARGET_BUTTON_DISMOUNT)
            canShow=1

        if player.IsObserverMode():
            self.__ShowButton(localeInfo.TARGET_BUTTON_EXIT_OBSERVER)
            canShow=1

        if canShow:
            self.__ArrangeButtonPosition()
            self.Show()
        else:
            self.Hide()
           
    def __ShowNameOnlyMenu(self):
        self.HideAllButton()

    def SetWhisperEvent(self, event):
        self.eventWhisper = event

    def UpdatePosition(self):
        self.SetPosition(wndMgr.GetScreenWidth()/2 - self.GetWidth()/2, 10)

    def ResetTargetBoard(self):

        for btn in self.buttonDict.values():
            btn.Hide()

        self.__Initialize()

        self.name.SetPosition(0, 13)
        self.name.SetHorizontalAlignCenter()
        self.name.SetWindowHorizontalAlignCenter()
        self.hpGauge.Hide()
        if app.ENABLE_SEND_TARGET_INFO:
            self.infoButton.Hide()

Burada dikkat etmemiz gereken yerler ise 1.satır ve 133.satır arkadaşlar.
 
Üst