From: Ron Croonenberg on 30 Dec 2009 12:01 ok, problem solved. In the directory the plugin lives I have(had) a directory called 'backup' to save things just in case I mess up. Guess what, RB apparently looks into that directory too and uses the class, py file, it finds there instead of the one I am making changes to. Dave Angel wrote: > Ron Croonenberg wrote: >> <div class="moz-text-flowed" style="font-family: -moz-fixed">Hello, >> >> I am trying to write a plugin for Rhythmbox in python and run into a >> 'strange' problem. For a method (an action for clicking a button) I >> started a method and however many arguments I use, it keeps giving me >> the same error: >> >> 'TypeError: startView() takes exactly 1 argument (3 given)' >> >> does someone have any pointers or tips?, thanks; >> >> Ron >> >> here is the code I have the problem with: >> >> import rb >> import pygtk >> import gtk, gobject >> >> >> pygtk.require('2.0') >> >> >> >> class tb_button (rb.Plugin): >> >> # >> # the init thing >> # >> def __init__(self): >> rb.Plugin.__init__(self) >> >> # >> # the activate thing >> # >> def activate(self, shell): >> self.shell = shell >> >> view_button = """ >> <ui> >> <toolbar name="ToolBar"> >> <placeholder name="View"> >> <toolitem name="View" action="viewAction"> >> </toolitem> >> </placeholder> >> </toolbar> >> </ui> >> """ >> >> # create a new action >> action = gtk.Action('viewAction', >> _(' _View'), >> _('Browse Track '), "") >> >> # connect it >> action.connect('activate', self.startView, shell) >> action_group = gtk.ActionGroup('NewActionGroup') >> action_group.add_action(action) >> shell.get_ui_manager().insert_action_group(action_group) >> >> # add it to the toolbar >> ui_manager = shell.get_ui_manager() >> ui_manager.add_ui_from_string(view_button) >> >> >> >> # >> # Start the View >> # >> def startView(self, widget, shell, se): >> # nothing yet >> return >> >> > Please give the complete error traceback, and make sure it matches the > code you post. I'm guessing that the subset of the error message you're > quoting occurs when you define startView() as taking only self as a > parameter. > > A quick caveat. I'm not familiar with GTK in particular, but I > recognize the paradigm. You're defining an event handler (startView). > And you define a certain set of parameters (not arguments), presently > called self, widge, shell, and se. > > But you're not calling it, you're connecting it to an action. So when > that action triggers (or event happens), the GUI system will call your > event handler. You don't control the arguments it passes, and > apparently it passes 3. So you need to change the formal parameters in > your def to match. > > More specifically what are those parameters ? I don't know, but you > should be able to tell from sample pyGTK sources, or somebody else can > chime in. And maybe I'm totally nuts here. > > DaveA > -- ================================================================== main(p){printf(p,34,p="main(p){printf(p,34,p=%c%s%c,34); }",34); } ================================================================== Ron Croonenberg | | Phone: 1 765 658 4761 Lab Instructor & | Fax: 1 765 658 4732 Technology Coordinator | | Department of Computer Science | e-mail: ronc(a)DePauw.edu DePauw University | 275 Julian Science & Math Center | 602 South College Ave. | Greencastle, IN 46135 | ==================================================================
|
Pages: 1 Prev: How to test a URL request in a "while True" loop Next: Dynamic text color |