How to print in the console ?
-
Hi,
With a simple script python, we can use 'print' to put a message in the console
But, with a python plugin this command don't work
I show my code here:def Command(self, id, msg): if id == btnID: print 'Hello World!' #silently fails (no message in the console) print('Hello World!') #silently fails (no message in the console) gui.MessageDialog('Hello World!') #opens a dialog box and displays the message
Thank you for your observations
-
Hi,
you can use the Python 2 keyword
print
in plugins just fine. Aside from the unusual eight space tab width of your code which could trip Python, you also are missing a return statement. Here is a minimal setup for aCommandData
which does print something to the console via a dialog.import c4d class MyDialog(c4d.gui.GeDialog): """ """ def CreateLayout(self): """ """ self.AddButton(1000, c4d.BFH_LEFT, 200, 24, "button") return True def Command(self, cid, msg): """ """ if cid == 1000: print "Hello" return True class MyCommandData(c4d.plugins.CommandData): """ """ def Execute(self, doc): """ """ dlg = MyDialog() dlg.Open(c4d.DLG_TYPE_MODAL, -1, -1, 200, 200) return True if __name__ == "__main__": c4d.plugins.RegisterCommandPlugin(id=10000000, str="test", info=0, icon=c4d.bitmaps.BaseBitmap(), help="", dat=MyCommandData())
Cheers
zipit -
I used the frame of your code to make plugins from scripts that I wrote, and now I can send my results to the console.
Thanks