|
|
|
|
Bonjour tout le monde,
Je me suis mis a python/Tk depuis peu et je trouve ça vraiment cool.
En revanche j'ai voulu un soir faire un tout petit script (que j'avais deja fait dans un autre langage) juste pour m'entrainer et là... gros probleme.
incompréhension totale !! :(
en fait c'est simple, je voudrai juste avoir un slider (Scale) qui envoie une commande "xgamma -gamma maValeur" au systeme (LINUX). et je n'y arrive absolument pas !! je trouve vraiment tres tres peu de doc sur ce widget et jamais d'exemple concret....
je vous mets le code , si quelqu'un peut m'aider ça serait genial
PS : en plus il y ades chose que je ne comprend pas, par exemple l'option "orient = HORIZONTAL" que j'ai vu dans plusieurs exemples et qui fonctionnait, ne marche pas dans mon script. la réponse est "HORIZONTAL n'est pas reconnu".
voila , merci d'avance !
import Tkinter
class GammaSlider:
def __init__(self, root):
self.root = root
self.gammaValue = Tkinter.DoubleVar() ; self.gammaValue.set(2.0)
self.initialisation()
def initialisation(self):
Tkinter.Scale(self.root, from_=0, to=3, resolution=0.01, length=400, sliderlength=60, variable=self.gammaValue, command = self.gammaLinker).grid(row=1, columnspan=6)
Tkinter.Button(self.root, width=12, text='0.5').grid(row=2, column=1)
Tkinter.Button(self.root, width=12, text='1.0').grid(row=2, column=2)
Tkinter.Button(self.root, width=12, text='1.5').grid(row=2, column=3)
Tkinter.Button(self.root, width=12, text='2.0').grid(row=2, column=4)
Tkinter.Label(self.root, width=12, text= self.gammaValue.get()).grid(row=2, column=5)
def gammaLinker(self):
valeur = self.gammaValue.get()
print valeur
def main():
root = Tkinter.Tk()
root.title('Gamma Slider')
app = GammaSlider(root)
root.mainloop()
if __name__ == "__main__":
main()
Configuration: Linux Firefox 1.0.1
Merci beaucoup pour ces infos.
#!/usr/bin/python
import Tkinter
from os import system
class gamma:
def __init__(self, root):
self.root = root
self.gammaValue = Tkinter.DoubleVar() ; self.gammaValue.set(1.0)
self.initialisation()
def initialisation(self):
Tkinter.Scale(self.root, from_=0, to=3, resolution=0.01, length=400, sliderlength=60, orient = 'horizontal', variable=self.gammaValue, showvalue = 0, command = self.gammaLinker).grid(row=1, columnspan=6)
Tkinter.Button(self.root, width=8, text='0.5', command = self.gammaSetter05).grid(row=2, column=1)
Tkinter.Button(self.root, width=8, text='Reset', command = self.gammaSetter10).grid(row=2, column=2)
Tkinter.Button(self.root, width=8, text='1.5', command = self.gammaSetter15).grid(row=2, column=3)
Tkinter.Button(self.root, width=8, text='2.0', command = self.gammaSetter2).grid(row=2, column=4)
Tkinter.Label(self.root, width=8, textvariable = self.gammaValue).grid(row=2, column=5)
def gammaLinker(self, value):
valeur = str(self.gammaValue.get())
system('xgamma -gamma '+valeur)
def gammaSetter05(self):
self.gammaValue.set(0.5)
system('xgamma -gamma 0.5')
def gammaSetter10(self):
self.gammaValue.set(1.0)
system('xgamma -gamma 1.0')
def gammaSetter15(self):
self.gammaValue.set(1.5)
system('xgamma -gamma 1.5')
def gammaSetter2(self):
self.gammaValue.set(2.0)
system('xgamma -gamma 2.0')
def main():
root = Tkinter.Tk()
root.title('Gamma Slider')
app = gamma(root)
root.mainloop()
if __name__ == "__main__":
main()
|
Si je fais ma procedure de la maniere suivante:
def gammaSetter(self, value):
self.gammaValue.set(value)
system('xgamma -gamma '+str(value))
et si mes boutons ont comme command: self.gammaSetter(0.5) self.gammaSetter(1) etc... il ne se passe rien.. enfin presque, au lancement du script la valeur se set a 0.5 au lieu de 1 et c'est tout. les boutons ne n'agissent pas du tout. d'ailleurs je ne comprend pas bien pourquoi.
|