Çözüldü İtem arama sistemi pack syserr ( güncelleme )

  • Konuyu açan Konuyu açan Enes Deniz
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 14
  • Gösterim Gösterim 1K
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Enes Deniz

www.SixTails.com.tr
Geliştirici
Usta Üye
Mesaj
370
Çözümler
20
Beğeni
696
Puan
839
Ticaret Puanı
0
İtem arama sistemi kuruyorum great uyarlı
fakat packta aldığım syser :

PrivateShopSearchDialog.LoadDialog.BindObject - <type 'exceptions.AttributeError'>:'module' object has no attribute 'ComboBoxImage'

verdiren kod satırı :

self.subItemChoose = ui.ComboBoxImage(self, "d:/ymir work/ui/privatesearch/private_leftSlotImg.sub",12,115)

ilgili yeri yani privatesearch dosyasını kontrol ettim dosyalar var içerisinde
@iMeR Arkadaşın dediği class'ı ekleyince veren syserr :

1204 10:53:13654 :: Exception
1204 10:53:13654 :: AttributeError
1204 10:53:13654 :: :
1204 10:53:13654 :: "'ComboBoxImage' object has no attribute 'hWnd'"
1204 10:53:13654 :: in
1204 10:53:13654 :: <bound method ComboBoxImage.__del__ of <ui.ComboBoxImage object at 0x057CC150>>
1204 10:53:13654 :: ignored

1204 10:53:13655 ::
uiPrivateShopSearch.py(line:386) LoadWindow

PrivateShopSearchDialog.LoadDialog.BindObject - <type 'exceptions.TypeError'>:__init__() takes exactly 1 argument (5 given)

1204 10:53:13655 :: ============================================================================================================
1204 10:53:13655 :: Abort!!!!
 
Son düzenleme:
Çözüm
Şu kodlarla bi değiştirin. Büyük ihtimal düzelmesi lazım. Eklerken tablara filan dikkat edin

Python:
Genişlet Daralt Kopyala
class ComboBoxImage(Window):
    class ListBoxWithBoard(ListBox):

        def __init__(self, layer):
            ListBox.__init__(self, layer)

        def OnRender(self):
            xRender, yRender = self.GetGlobalPosition()
            yRender -= self.TEMPORARY_PLACE
            widthRender = self.width
            heightRender = self.height + self.TEMPORARY_PLACE*2
            grp.SetColor(BACKGROUND_COLOR)
            grp.RenderBar(xRender, yRender, widthRender, heightRender)
            grp.SetColor(DARK_COLOR)
            grp.RenderLine(xRender, yRender, widthRender, 0)
            grp.RenderLine(xRender, yRender, 0, heightRender)...
ui.py dosyasında comboboximage adlı class'ın olduğundan emin olunuz
 
Ekran Alıntısı.PNG

comboboximage adı geçen tüm kodlar burada görülüyor
 
Arkadaşlar kodlarınızı resim olarak atmayınız
 
Kodların tamamını paylaşabilir misiniz? Hataya göre 5 tane argüment gönderiliyor ancak sistem 1 tane kabul ediyormuş.
 
Kodların tamamını paylaşabilir misiniz? Hataya göre 5 tane argüment gönderiliyor ancak sistem 1 tane kabul ediyormuş.
Hangi py dosyasının olduğunu söyleyin paylaşıyım buradan daha iyi olur isterseniz hata yerini bildirirsiniz daha sağlıklı nolur tek tek kodları atmiyayım
 
ui.py dosyasında şu kodlardan kaynaklı sorun. uiPrivateShopSearch'da sınıfı oluştururken argüment gönderiiyor ama def __init__ için gönderilenler tanımlanmamış.
Python:
Genişlet Daralt Kopyala
class ComboBoxImage(Window):
    class ListBoxWithBoard(ListBox):

        def __init__(self, layer):
            ListBox.__init__(self, layer)

        def OnRender(self):
            xRender, yRender = self.GetGlobalPosition()
            yRender -= self.TEMPORARY_PLACE
            widthRender = self.width
            heightRender = self.height + self.TEMPORARY_PLACE*2
            grp.SetColor(BACKGROUND_COLOR)
            grp.RenderBar(xRender, yRender, widthRender, heightRender)
            grp.SetColor(DARK_COLOR)
            grp.RenderLine(xRender, yRender, widthRender, 0)
            grp.RenderLine(xRender, yRender, 0, heightRender)
            ListBox.OnRender(self)

    def __init__(self):
        Window.__init__(self)
        self.x = 0
        self.y = 0
        self.width = 0
        self.height = 0
        self.isSelected = False
        self.isOver = False
        self.isListOpened = False
        self.event = lambda *arg: None
        self.enable = True

        self.textLine = MakeTextLine(self)
        self.textLine.SetText(localeInfo.UI_ITEM)

        self.listBox = self.ListBoxWithBoard("TOP_MOST")
        self.listBox.SetPickAlways()
        self.listBox.SetParent(self)
        self.listBox.SetEvent(__mem_func__(self.OnSelectItem))
        self.listBox.Hide()

    def __del__(self):
        Window.__del__(self)

    def Destroy(self):
        self.textLine = None
        self.listBox = None

    def SetPosition(self, x, y):
        Window.SetPosition(self, x, y)
        self.x = x
        self.y = y
        self.__ArrangeListBox()

    def SetSize(self, width, height):
        Window.SetSize(self, width, height)
        self.width = width
        self.height = height
        self.textLine.UpdateRect()
        self.__ArrangeListBox()

    def __ArrangeListBox(self):
        self.listBox.SetPosition(0, self.height + 5)
        self.listBox.SetWidth(self.width)

    def Enable(self):
        self.enable = True

    def Disable(self):
        self.enable = False
        self.textLine.SetText("")
        self.CloseListBox()

    def SetEvent(self, event):
        self.event = event

    def ClearItem(self):
        self.CloseListBox()
        self.listBox.ClearItem()

    def InsertItem(self, index, name):
        self.listBox.InsertItem(index, name)
        self.listBox.ArrangeItem()

    def SetCurrentItem(self, text):
        self.textLine.SetText(text)

    def SelectItem(self, key):
        self.listBox.SelectItem(key)

    def OnSelectItem(self, index, name):

        self.CloseListBox()
        self.event(index)

    def CloseListBox(self):
        self.isListOpened = False
        self.listBox.Hide()

    def OnMouseLeftButtonDown(self):

        if not self.enable:
            return

        self.isSelected = True

    def OnMouseLeftButtonUp(self):

        if not self.enable:
            return

        self.isSelected = False

        if self.isListOpened:
            self.CloseListBox()
        else:
            if self.listBox.GetItemCount() > 0:
                self.isListOpened = True
                self.listBox.Show()
                self.__ArrangeListBox()

    def OnUpdate(self):

        if not self.enable:
            return

        if self.IsIn():
            self.isOver = True
        else:
            self.isOver = False

    def OnRender(self):
        self.x, self.y = self.GetGlobalPosition()
        xRender = self.x
        yRender = self.y
        widthRender = self.width
        heightRender = self.height
        grp.SetColor(BACKGROUND_COLOR)
        grp.RenderBar(xRender, yRender, widthRender, heightRender)
        grp.SetColor(DARK_COLOR)
        grp.RenderLine(xRender, yRender, widthRender, 0)
        grp.RenderLine(xRender, yRender, 0, heightRender)
        grp.SetColor(BRIGHT_COLOR)
        grp.RenderLine(xRender, yRender+heightRender, widthRender, 0)
        grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)

        if self.isOver:
            grp.SetColor(HALF_WHITE_COLOR)
            grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)

            if self.isSelected:
                grp.SetColor(WHITE_COLOR)
                grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)
 
ui.py dosyasında şu kodlardan kaynaklı sorun. uiPrivateShopSearch'da sınıfı oluştururken argüment gönderiiyor ama def __init__ için gönderilenler tanımlanmamış.
Python:
Genişlet Daralt Kopyala
class ComboBoxImage(Window):
    class ListBoxWithBoard(ListBox):

        def __init__(self, layer):
            ListBox.__init__(self, layer)

        def OnRender(self):
            xRender, yRender = self.GetGlobalPosition()
            yRender -= self.TEMPORARY_PLACE
            widthRender = self.width
            heightRender = self.height + self.TEMPORARY_PLACE*2
            grp.SetColor(BACKGROUND_COLOR)
            grp.RenderBar(xRender, yRender, widthRender, heightRender)
            grp.SetColor(DARK_COLOR)
            grp.RenderLine(xRender, yRender, widthRender, 0)
            grp.RenderLine(xRender, yRender, 0, heightRender)
            ListBox.OnRender(self)

    def __init__(self):
        Window.__init__(self)
        self.x = 0
        self.y = 0
        self.width = 0
        self.height = 0
        self.isSelected = False
        self.isOver = False
        self.isListOpened = False
        self.event = lambda *arg: None
        self.enable = True

        self.textLine = MakeTextLine(self)
        self.textLine.SetText(localeInfo.UI_ITEM)

        self.listBox = self.ListBoxWithBoard("TOP_MOST")
        self.listBox.SetPickAlways()
        self.listBox.SetParent(self)
        self.listBox.SetEvent(__mem_func__(self.OnSelectItem))
        self.listBox.Hide()

    def __del__(self):
        Window.__del__(self)

    def Destroy(self):
        self.textLine = None
        self.listBox = None

    def SetPosition(self, x, y):
        Window.SetPosition(self, x, y)
        self.x = x
        self.y = y
        self.__ArrangeListBox()

    def SetSize(self, width, height):
        Window.SetSize(self, width, height)
        self.width = width
        self.height = height
        self.textLine.UpdateRect()
        self.__ArrangeListBox()

    def __ArrangeListBox(self):
        self.listBox.SetPosition(0, self.height + 5)
        self.listBox.SetWidth(self.width)

    def Enable(self):
        self.enable = True

    def Disable(self):
        self.enable = False
        self.textLine.SetText("")
        self.CloseListBox()

    def SetEvent(self, event):
        self.event = event

    def ClearItem(self):
        self.CloseListBox()
        self.listBox.ClearItem()

    def InsertItem(self, index, name):
        self.listBox.InsertItem(index, name)
        self.listBox.ArrangeItem()

    def SetCurrentItem(self, text):
        self.textLine.SetText(text)

    def SelectItem(self, key):
        self.listBox.SelectItem(key)

    def OnSelectItem(self, index, name):

        self.CloseListBox()
        self.event(index)

    def CloseListBox(self):
        self.isListOpened = False
        self.listBox.Hide()

    def OnMouseLeftButtonDown(self):

        if not self.enable:
            return

        self.isSelected = True

    def OnMouseLeftButtonUp(self):

        if not self.enable:
            return

        self.isSelected = False

        if self.isListOpened:
            self.CloseListBox()
        else:
            if self.listBox.GetItemCount() > 0:
                self.isListOpened = True
                self.listBox.Show()
                self.__ArrangeListBox()

    def OnUpdate(self):

        if not self.enable:
            return

        if self.IsIn():
            self.isOver = True
        else:
            self.isOver = False

    def OnRender(self):
        self.x, self.y = self.GetGlobalPosition()
        xRender = self.x
        yRender = self.y
        widthRender = self.width
        heightRender = self.height
        grp.SetColor(BACKGROUND_COLOR)
        grp.RenderBar(xRender, yRender, widthRender, heightRender)
        grp.SetColor(DARK_COLOR)
        grp.RenderLine(xRender, yRender, widthRender, 0)
        grp.RenderLine(xRender, yRender, 0, heightRender)
        grp.SetColor(BRIGHT_COLOR)
        grp.RenderLine(xRender, yRender+heightRender, widthRender, 0)
        grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)

        if self.isOver:
            grp.SetColor(HALF_WHITE_COLOR)
            grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)

            if self.isSelected:
                grp.SetColor(WHITE_COLOR)
                grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)
Bunu nasıl düzeltmem lazım gösterebilir misiniz?
 
Şu kodlarla bi değiştirin. Büyük ihtimal düzelmesi lazım. Eklerken tablara filan dikkat edin

Python:
Genişlet Daralt Kopyala
class ComboBoxImage(Window):
    class ListBoxWithBoard(ListBox):

        def __init__(self, layer):
            ListBox.__init__(self, layer)

        def OnRender(self):
            xRender, yRender = self.GetGlobalPosition()
            yRender -= self.TEMPORARY_PLACE
            widthRender = self.width
            heightRender = self.height + self.TEMPORARY_PLACE*2
            grp.SetColor(BACKGROUND_COLOR)
            grp.RenderBar(xRender, yRender, widthRender, heightRender)
            grp.SetColor(DARK_COLOR)
            grp.RenderLine(xRender, yRender, widthRender, 0)
            grp.RenderLine(xRender, yRender, 0, heightRender)
            ListBox.OnRender(self)

    def __init__(self, parent, name, x ,y):
        Window.__init__(self)
        self.isSelected = False
        self.isOver = False
        self.isListOpened = False
        self.event = lambda *arg: None
        self.enable = True
        self.imagebox = None
        
        ## imagebox
        image = ImageBox()
        image.SetParent(parent)
        image.LoadImage(name)
        image.SetPosition(x, y)
        image.Show()
        self.imagebox = image
        
        ## BaseSetting
        self.x = x + 1
        self.y = y + 1
        self.width = self.imagebox.GetWidth() - 3
        self.height = self.imagebox.GetHeight() - 3
        self.SetParent(parent)

        ## TextLine
        self.textLine = MakeTextLine(self)
        self.textLine.SetText(localeInfo.UI_ITEM)
        
        ## ListBox
        self.listBox = self.ListBoxWithBoard("TOP_MOST")
        self.listBox.SetPickAlways()
        self.listBox.SetParent(self)
        self.listBox.SetEvent(__mem_func__(self.OnSelectItem))
        self.listBox.Hide()

        Window.SetPosition(self, self.x, self.y)
        Window.SetSize(self, self.width, self.height)
        self.textLine.UpdateRect()
        self.__ArrangeListBox()
        
    def __del__(self):
        Window.__del__(self)

    def Destroy(self):
        self.textLine = None
        self.listBox = None
        self.imagebox = None

    def SetPosition(self, x, y):
        Window.SetPosition(self, x, y)
        self.imagebox.SetPosition(x, y)
        self.x = x
        self.y = y
        self.__ArrangeListBox()

    def SetSize(self, width, height):
        Window.SetSize(self, width, height)
        self.width = width
        self.height = height
        self.textLine.UpdateRect()
        self.__ArrangeListBox()

    def __ArrangeListBox(self):
        self.listBox.SetPosition(0, self.height + 5)
        self.listBox.SetWidth(self.width)

    def Enable(self):
        self.enable = True

    def Disable(self):
        self.enable = False
        self.textLine.SetText("")
        self.CloseListBox()

    def SetEvent(self, event):
        self.event = event

    def ClearItem(self):
        self.CloseListBox()
        self.listBox.ClearItem()

    def InsertItem(self, index, name):
        self.listBox.InsertItem(index, name)
        self.listBox.ArrangeItem()

    def SetCurrentItem(self, text):
        self.textLine.SetText(text)

    def SelectItem(self, key):
        self.listBox.SelectItem(key)

    def OnSelectItem(self, index, name):
        self.CloseListBox()
        self.event(index)

    def CloseListBox(self):
        self.isListOpened = False
        self.listBox.Hide()

    def OnMouseLeftButtonDown(self):
    
        if not self.enable:
            return

        self.isSelected = True

    def OnMouseLeftButtonUp(self):
        if not self.enable:
            return
        
        self.isSelected = False
        
        if self.isListOpened:
            self.CloseListBox()
        else:
            if self.listBox.GetItemCount() > 0:
                self.isListOpened = True
                self.listBox.Show()
                self.__ArrangeListBox()

    def OnUpdate(self):

        if not self.enable:
            return

        if self.IsIn():
            self.isOver = True
        else:
            self.isOver = False

    def OnRender(self):
        self.x, self.y = self.GetGlobalPosition()
        xRender = self.x
        yRender = self.y
        widthRender = self.width
        heightRender = self.height
        if self.isOver:
            grp.SetColor(HALF_WHITE_COLOR)
            grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)
            if self.isSelected:
                grp.SetColor(WHITE_COLOR)
                grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)
 
Çözüm
Böyle paylaşınca tablar boşluk olarak görüyor not defterine yapabilir misiniz rica etsem?
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst