Solved AttributeError: 'GUI' object has no attribute 'AddCheckBox'

Hey Guys,

I'm getting the error " AttributeError: 'GUI' object has no attribute 'AddCheckBox' " in my console, and I believe I'm bringing in the right libraries, I think...But, I cannot seem to find anything that's helping searching through forums and the c4d.gui info pages.

Maxime helped me understand the group concepts so thanks again for that. I commented out a lot of code to test things, but here's the current code that's throwing the error. Still a lot of learning to do, but I've been on this particular error for 2 hours now....oh fun haha

import c4d
from c4d import gui, plugins, bitmaps, documents

class GUI(gui.GeDialog):
    """ Creates the main graphical user interface of the plug-in  """
    
    
    ResourceFileGroup = 101
    SettingFilegroup = 102
    Label_Folders = 201
    Label_Settings = 202
    Label_ObjectsImport = 203
    ResourceFolder = 301
    MVRFileLocation = 302
    AllCheckBox = 401
    HangingPosCheckBox = 402
    TrussCheckBox = 403
    FixturesCheckBox = 404
    GeometriesCheckBox = 405
    ComboBox_ID = 1003
    AddChild_1 = 1004
    TextEdit = 1005
    RadioGroup = 1006
    RadioText = 1007
    RadioChild = 1008
    
    def CreateLayout(self):
        
        self.SetTitle("My Dialog")
        
        self.GroupBegin(self.ResourceFileGroup, 0 | 0)
        self.AddStaticText(self.TextEdit, c4d.BFH_SCALEFIT | c4d.BFV_TOP, 100, 25, "Source Files", 1)
        self.AddButton(self.ResourceFolder, c4d.BFH_LEFT | c4d.BFV_TOP, 125, 25, "Resource Folder")
        self.AddButton(self.MVRFileLocation, c4d.BFH_LEFT | c4d.BFV_TOP, 125, 25, "MVR File")
        self.GroupEnd()

        self.GroupBegin(self.ResourceFileGroup, 0 | 0)
        self.AddStaticText(self.TextEdit, c4d.BFH_SCALEFIT | c4d.BFV_TOP, 100, 25, "Settings", 1)
        self.AddCheckBox(self.AllCheckBox, c4d.BFH_LEFT | c4d.BFV_TOP, 125, 25, "All")
        self.GroupEnd()

        # if self.GroupBegin(self.SettingFilegroup, 0 | 0):
        #     self.AddStaticText(self.TextEdit, 0 | 0, 100, 25, "Settings", 1)
        #     self.AddCheckBox(self.AllCheckBox, c4d.BFH_LEFT | c4d.BFV_TOP, 125, 25, "All")
        
        # self.GroupEnd()


        # self.SetTitle("CAV MVR IMPORTER")  # Set dialog title
        # self.AddRadioText(self.Label_Folders, c4d.BFH_LEFT | c4d.BFV_TOP, 0, 0, "Source Files")
        # self.AddRadioText(self.Label_Settings, c4d.BFH_CENTER, 0, 0, "Settings")
        # self.AddRadioText(self.Label_Settings, c4d.BFH_RIGHT, 0, 0, "Objects To Import")
        # self.AddButton(self.ResourceFolder, c4d.BFH_LEFT | c4d.BFV_TOP, 125, 25, "Resource Folder")
        # self.AddButton(self.MVRFileLocation, c4d.BFH_LEFT | c4d.BFV_TOP, 125, 25, "MVR File")
        # self.AddComboBox(self.ComboBox_ID, 0 | 0, 100, 25, True, True)
        # self.AddChild(self.ComboBox_ID, self.AddChild_1, "Drop Down 1")
        # self.AddRadioGroup(self.RadioGroup, c4d.BFH_SCALE | c4d.BFV_SCALE, 1, 3)

        # Create a Group, its usefull because here we adds the StaticText Gadget and to make it appears again
        # LayoutChanged needs to be called, which work only a group.
        # if self.GroupBegin(self.TextEditGroup, c4d.BFH_SCALEFIT | c4d.BFV_TOP):
        #     self.AddStaticText(self.TextEdit, c4d.BFH_SCALEFIT | c4d.BFV_TOP, 100, 25, "", 1)
        #     self.HideElement(self.TextEdit, True)
        # self.GroupEnd()
        


    # def Command(self, id, msg):
    #     # RESOURCE FOLDER BUTTON
    #     if id == 201:
    #         fn_ResourceFolder = c4d.storage.LoadDialog()
    #          # Unhides the Text element
    #         self.HideElement(self.TextEdit, False)
            
    #         # Checks if its a str, then display the file path
    #         if isinstance(fn, str):
    #             # Unhides the Text element
    #             self.HideElement(self.TextEdit, False)
    #             # SET THE STRING
    #             self.SetString(self.TextEdit, fn)
                
    #         # If its not a string, the user cancelled
    #         else:
    #             self.SetString(self.TextEdit, "User cancelled")
                
    #         # Notify the layout of the group changed, this will invalidate the group and it will be then redraw
    #         # This is needed because the UI was hidden, if the Ui is not hidden then there is no need for it
    #         self.LayoutChanged(self.TextEditGroup)

    #     # MVR FILE BUTTON
    #     if id == 202:
    #         fn_MVRFileLocation = c4d.storage.LoadDialog()


    #         # Unhides the Text element
    #         self.HideElement(self.TextEdit, False)
            
    #         # Checks if its a str, then display the file path
    #         if isinstance(fn, str):
    #             # Unhides the Text element
    #             self.HideElement(self.TextEdit, False)
    #             # SET THE STRING
    #             self.SetString(self.TextEdit, fn)
                
    #         # If its not a string, the user cancelled
    #         else:
    #             self.SetString(self.TextEdit, "User cancelled")
                
    #         # Notify the layout of the group changed, this will invalidate the group and it will be then redraw
    #         # This is needed because the UI was hidden, if the Ui is not hidden then there is no need for it
    #         self.LayoutChanged(self.TextEditGroup)



    #         print fn_MVRFileLocation


    
        
def main():
    # Test dialog
    diag = GUI()
    diag.Open(dlgtype=c4d.DLG_TYPE_MODAL, defaultw=1000, defaulth=400)

    


# Execute main()
if __name__ == '__main__':
    main()

Thanks again for any insight.

Cheers!

MattG

According to the docs: AddCheckbox().

Not "AddCheckBox()"

According to the docs: AddCheckbox().

Not "AddCheckBox()"

Well Uh.....Yea.....Guess I should take a break......Thanks for the point out of the lower case b........🙄

This is solved. Thanks Plugin Student!

Cheers!

MattG