Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Tk] radiobutton vs button

7 réponses
Avatar
znort
salut,
dans le programme (très complexe...) suivant,
j'utilise un radiobutton pour récupérer une valeur,
et esthétiquement, c'est moche !

y-a-t'il un moyen de récupérer le texte d'un Button ?


# !/usr/bin/python

from Tkinter import *
root=Tk()
var=StringVar()

def affich():
print var.get()

i=1
while(i<5):
rb=Radiobutton(root,text=i,value=i,variable=var,command=affich)
rb.pack()
i=i+1

root.mainloop()

7 réponses

Avatar
Eric Brunel
On Wed, 11 Oct 2006 19:15:49 +0200, znort
wrote:

salut,
dans le programme (très complexe...) suivant,
j'utilise un radiobutton pour récupérer une valeur,
et esthétiquement, c'est moche !


Jugement esthétique qui n'engage que toi... Pour info, sous Windows, tk
utilise les radio-boutons natifs; le look est donc différent.

y-a-t'il un moyen de récupérer le texte d'un Button ?


Avant ça, essaie ça:

rb=Radiobutton(root,text=i,value=i,variable=var,command¯fich,
indicatoron=0, width=5)

des fois que ça te plaise plus.


Si ça ne te plaît toujours pas, il y a un moyen très simple de récupérer
le texte d'un bouton tout en permettant de le changer très facilement: il
suffit de le spécifier via l'option textvariable plutôt que par l'option
text du bouton. Exemple:

---------------------------------------------------------
from Tkinter import *

root = Tk()
var = IntVar()
var.set(1)

def affich():
newValue = 1 + var.get()
if newValue > 5:
newValue = 1
var.set(newValue)
print newValue

Button(root, textvariable=var, width=5, command¯fich).pack()

root.mainloop()
---------------------------------------------------------

HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

Avatar
Bruno Desthuilliers
znort wrote:
salut,
dans le programme (très complexe...) suivant,
j'utilise un radiobutton pour récupérer une valeur,
et esthétiquement, c'est moche !

y-a-t'il un moyen de récupérer le texte d'un Button ?


Laisse'thétique tranquille et respecte les normes habituelles d'un GUI,
ça vaudra mieux... Les boutons radio et les combos sont les deux
widgets canoniques pour une sélection unique dans une liste de
petite/moyenne taille, et utiliser autre chose serait au mieux déroutant
pour l'utilisateur final. Enfin bon, mon humble avis, hein...


# !/usr/bin/python

from Tkinter import *
root=Tk()
var=StringVar()

def affich():
print var.get()

i=1
while(i<5):
rb=Radiobutton(root,text=i,value=i,variable=var,command¯fich)
rb.pack()
i=i+1


for i in range(5):
rb=Radiobutton(root,text=i,value=i,variable=var,command¯fich)
rb.pack()



root.mainloop()



--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
znort
On Wed, 11 Oct 2006 19:15:49 +0200, znort
wrote:

salut,
dans le programme (très complexe...) suivant,
j'utilise un radiobutton pour récupérer une valeur,
et esthétiquement, c'est moche !



Jugement esthétique qui n'engage que toi... Pour info, sous Windows, tk
utilise les radio-boutons natifs; le look est donc différent.

y-a-t'il un moyen de récupérer le texte d'un Button ?



Avant ça, essaie ça:

rb=Radiobutton(root,text=i,value=i,variable=var,command¯fich,
indicatoron=0, width=5)


merci beaucoup, c'est exactement ce que je cherchais...


Avatar
Christophe Cavalaria
Eric Brunel wrote:

On Wed, 11 Oct 2006 19:15:49 +0200, znort
wrote:

salut,
dans le programme (très complexe...) suivant,
j'utilise un radiobutton pour récupérer une valeur,
et esthétiquement, c'est moche !


Jugement esthétique qui n'engage que toi... Pour info, sous Windows, tk
utilise les radio-boutons natifs; le look est donc différent.


Et sous Unix, il utilise Motif qui est une des pires horreurs qui soit,
juste après le thème par défaut de CDE :o


Avatar
Eric Brunel
On Thu, 12 Oct 2006 20:34:31 +0200, Christophe Cavalaria
wrote:
Eric Brunel wrote:
Jugement esthétique qui n'engage que toi... Pour info, sous Windows, tk
utilise les radio-boutons natifs; le look est donc différent.


Et sous Unix, il utilise Motif qui est une des pires horreurs qui soit,
juste après le thème par défaut de CDE :o


Et ben non: tk n'utilise pas la librairie Motif, mais directement X11. Vu
l'âge du bousin, Motif était la seule chose qui existait quand tk a
commencé; ils ont donc cloné le look. Mais c'est bien bien en train de
s'arranger; voir ici:
http://tktable.sourceforge.net/tile/

Tile sera intégré dans tcl/tk 8.5, c'est à dire la prochaine version.
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"


Avatar
Christophe Cavalaria
Eric Brunel wrote:

On Thu, 12 Oct 2006 20:34:31 +0200, Christophe Cavalaria
wrote:
Eric Brunel wrote:
Jugement esthétique qui n'engage que toi... Pour info, sous Windows, tk
utilise les radio-boutons natifs; le look est donc différent.


Et sous Unix, il utilise Motif qui est une des pires horreurs qui soit,
juste après le thème par défaut de CDE :o


Et ben non: tk n'utilise pas la librairie Motif, mais directement X11. Vu
l'âge du bousin, Motif était la seule chose qui existait quand tk a
commencé; ils ont donc cloné le look.


Ils n'utilisent pas la lib Motif mais le look Motif ? Bah comment dire, ça
change rien au problème : c'est moche :o

Mais c'est bien bien en train de
s'arranger; voir ici:
http://tktable.sourceforge.net/tile/

Tile sera intégré dans tcl/tk 8.5, c'est à dire la prochaine version.


Mouais bof. Encore des simples copies. Et en plus, ici ils copient un vieux
thème GTK. Déjà, c'est un thème plus vraiment en usage, ensuite, les
applications TK auront toujours un look affreusement différent de celui des
autres applis :/ Ca restera moche ( mais moins qu'avant c'est sur )



Avatar
Olivier Ravard
Eric Brunel wrote:
On Wed, 11 Oct 2006 19:15:49 +0200, znort
wrote:

salut,
dans le programme (très complexe...) suivant,
j'utilise un radiobutton pour récupérer une valeur,
et esthétiquement, c'est moche !


Jugement esthétique qui n'engage que toi... Pour info, sous Windows, tk
utilise les radio-boutons natifs; le look est donc différent.

y-a-t'il un moyen de récupérer le texte d'un Button ?


Avant ça, essaie ça:

rb=Radiobutton(root,text=i,value=i,variable=var,command¯fich,
indicatoron=0, width=5)

des fois que ça te plaise plus.


Si ça ne te plaît toujours pas, il y a un moyen très simple de récupérer
le texte d'un bouton tout en permettant de le changer très facilement:
il suffit de le spécifier via l'option textvariable plutôt que par
l'option text du bouton. Exemple:

---------------------------------------------------------
from Tkinter import *

root = Tk()
var = IntVar()
var.set(1)

def affich():
newValue = 1 + var.get()
if newValue > 5:
newValue = 1
var.set(newValue)
print newValue

Button(root, textvariable=var, width=5, command¯fich).pack()



C'est le moyen le plus intéressant. Mais pour les cas où ceci ne peut
pas marcher, on peut toujours utiliser :

text = b.config('text')[4]

Et ceci sera valable pour tous les widgets qui ont un argument 'text'.

O.R.


root.mainloop()
---------------------------------------------------------

HTH
--python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"