newbie: GeDialog example?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 04:58, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   12 
    Platform:   Windows  ;   
    Language(s) :       PYTHON  ;

    ---------
    Hello there,

    I am trying to get a grip on GUI interfaces within Python for C4D.
    Unfortunately just now learning python (and coding) so I still am not able to understand the SDK in a way that I can code right away.

    Is there a example somwhere over making a simple GeDialog with lets say one input value? so that I understand the structure that is nessesary?

    thanks a lot

    Jops
    (who is trying not to flood this nice forum with newbie questions)



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 05:09, xxxxxxxx wrote:

    Hi Jops,

    here is a small example for you. I hope this helps:

    import c4d
    from c4d import gui
    #Welcome to the world of Python
      
    GROUP_ID1=1000
    TEXTBOX=1001
    BUTTON1=1002
    BUTTON2=1003
      
    class ExampleDlg(gui.GeDialog) :
        
        def CreateLayout(self) :
            #creat the layout of the dialog
            self.GroupBegin(GROUP_ID1, c4d.BFH_SCALEFIT, 3, 1)
            self.AddEditText(TEXTBOX, c4d.BFH_SCALEFIT)
            self.AddButton(BUTTON1, c4d.BFH_SCALE, name="MessadeDialog")
            self.AddButton(BUTTON2, c4d.BFH_SCALE, name="Close")
            self.GroupEnd()
            return True
      
        def InitValues(self) :
            #initiate the gadgets with values
            self.SetString(TEXTBOX, "Hello World!")
            return True
      
        def Command(self, id, msg) :
            #handle user input
            if id==BUTTON1:
                gui.MessageDialog(self.GetString(TEXTBOX))
            elif id==BUTTON2:
                self.Close()
            return True
      
      
    dlg = ExampleDlg()
    dlg.Open(c4d.DLG_TYPE_MODAL, defaultw=300, defaulth=50)
    

    Cheers, Sebastian



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 05:52, xxxxxxxx wrote:

    Hello Sebastian,

    that is great, thanks a lot!!!
    may I put you example in Per-Anders Python Wiki?

    all The best
    Jops



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 06:05, xxxxxxxx wrote:

    Sure, do with the code what ever you want.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 06:28, xxxxxxxx wrote:

    if you have time you might answer me one more question:

    if I define the dialog as a async dialog it just pops up and closes again. even if I put it into the mail loop.

    Is there a trick or is there more to it?

    thanks again
    Jops



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 07:20, xxxxxxxx wrote:

    Asynchronous dialogs can just be used in plugins (in combination with CommandData).



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 14:54, xxxxxxxx wrote:

    is it on principle possible to code a python plugin with plug ID and Asynchronous dialogs?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 03/11/2010 at 03:13, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    is it on principle possible to code a python plugin with plug ID and Asynchronous dialogs?

    Yes, that's possible.

    cheers,
    Matthias



  • On 01/11/2017 at 12:43, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

     
        def Command(self, id, msg) :
            #handle user input
            if id==BUTTON1:
                gui.MessageDialog(self.GetString(TEXTBOX))
            elif id==BUTTON2:
                self.Close()
            return True
     
    
    

    The buttons aren't working for me. Nothing happens when I click on them.



  • On 02/11/2017 at 10:29, xxxxxxxx wrote:

    Hi,

    welcome to the Plugin Café forums 🙂

    I think, you'd need to post a bit more of your code, the Command() function doesn't look wrong to me.

    We have a few examples making use of GeDialog in our GitHub repository.
    The simplest, basically with two buttons in a GeDialog (just like the example above) is Py-TextureBaker.pyp.


Log in to reply