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


Log in to reply