2010-11-23 6 views
2

J'essaye d'envoyer un message tk à un programme existant compatible tcl/tk.Python tkinter: Comment 'envoyer' à un tkname contenant des espaces

Le problème est que ce programme en cours d'exécution a un espace dans son nom tk. Pensez "bob # 2".

Pour la vie de moi, je ne peux pas comprendre comment envoyer() à "bob # 2" et le faire fonctionner.

Ceci est l'erreur la plus courante je reçois: _tkinter.TclError: Mauvais nombre args pour "MYCMD"

version simplifiée de mon code

tname = 'bob #2' 
mw.send(tName, "MyCmd") 

Toutes les idées? -thx

+0

Publiez un code de ce que vous avez essayé et des lignes qui vous donnent l'erreur. – unholysampler

+0

L'erreur ressemble plus à l'absence de certains paramètres pour la commande que vous essayez d'envoyer. Qu'est-ce que "MyCmd" exactement? –

+0

Il ne s'agit pas de manquer un paramètre pour la commande. Cela fonctionne bien tant que le tkname n'a pas d'espaces. – John

Répondre

1

Remarque: complètement non testé!

Avez-vous essayé

tname = '{bob #2}' 
mw.send(tName, "MyCmd") 

Vous ne devriez pas avoir à le faire si la méthode send avait été écrit correctement. Les accolades seraient solution Tcl au problème (d'une méthode send mal écrite). Une autre solution possible pourrait être:

tname = 'bob\ #2' 

Ou, peut-être un \\.

+0

Merci, mais ceux-ci ne fonctionnent pas pour moi. – John