On 6/27/07, JUAN JOSE ROJO <[EMAIL PROTECTED]> wrote:
Sorry, i forget this2007/6/28, JUAN JOSE ROJO <[EMAIL PROTECTED]>: > > > > 2007/6/27, James Dietrich <[EMAIL PROTECTED]>: > > Hi, > > > > In the following program, one click on the spinbutton will > > advance the number displayed by two digits--from '1' to '3'. > > Apparently the 'value-changed' signal gets emitted twice > > when the adj_callback takes some time to do. If I uncomment > > the line with 'return' on it so that it skips the long loop, one > > click advances the number on the spinbutton by one > > number, as expected. > > > > Am I missing something about how spinbuttons work? > > > > Thanks for your help, > > James Dietrich > > > > import gtk > > > > def adj_callback(adj): > > print "Adj Callback" > > #return > > for x in range(10000000): y = x * x > > > > win = gtk.Window() > > win.connect('delete-event', gtk.main_quit) > > > > adj = gtk.Adjustment(1, 1, 100, 1, 1, 0) > adj = gtk.Adjustment(1, 1, 100, 2, 1, 0) With that should work jumping two digits. > > > > spin = gtk.SpinButton(adj, 0, 0) > > spin.connect('value-changed', adj_callback) > > > spin.connect('change-value', adj_callback) > > > > spin.show() > > > > win.add(spin) > > win.show() > > > > gtk.main()
Hi, Thanks for the suggestions, but it's not what I need. Perhaps I didn't explain myself well enough. In the original example, I want and expect that the spinbutton should advance one digit at a time by clicking on the tiny arrows. It does work as expected if the adj_callback executes quickly, like if I uncomment the return statement in there. However, if that long loop executes in the callback (it takes several seconds at least), then the spinbutton advances by two digits for every one click. Any more ideas on how to make the spinbutton only advance one digit at a time even if the callback takes several seconds? Thanks for your help, James Dietrich _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
