bonjour
je suis en train de faire un programme de recadrage d'image par lot et j'ai un problème concernant les changements de valeurs de spinbutton.
donc, j'ai deux spinbutton pour redimensionner l'image.
je voudrais conserver le ratio de l'image, donc en modifiant le premier, le second va être modifié pour conserver le ratio:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 resize_width_ajustement = gtk.Adjustment(width, 0, width, 1) resize_height_ajustement = gtk.Adjustment(height, 0, height, 1) resize_width = gtk.SpinButton(resize_width_ajustement) resize_height = gtk.SpinButton(resize_height_ajustement) resize_height.connect("value_changed", redimensionner, "height", resize_width) resize_width.connect("value_changed", redimensionner, "width", resize_height))
le soucis est que l'opération n'est pas très précise (au pixel près) et donc la modification du deuxième entraine une modification du premier qui entraine une modification du deuxième, et s'arrentent au bout de deux ou trois tours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 def redimensionner(entree, widget, secwidget): global width_redim global height_redim if widget == "width": width_redim = entree.get_value() height_redim = width_redim / ratio secwidget.set_value(int(height_redim)) elif widget == "height": height_redim = entree.get_value() width_redim = height_redim * ratio secwidget.set_value(int(width_redim))
du coup la saisie est impossible.
je n'ai pas trouvé d'autres signaux qui permettent de contourner ce problème.
voila, j'ai mis le script en piece jointe.
d'ailleur si vous avez des remarques et conseil concernant celui ci, je suis prenneur vu que je débute en python.
merci
Partager