Tkinter TclError en construisant la plupart des widgets

_tkinter.TclError: expected integer but got "Mono"

Le problème exposé dans ce sujet a été résolu.

Bonsoir,

En cherchant à utiliser le module matplotlib je me suis retrouvé avec ce message d’erreur en faisant un simple graphique: _tkinter.TclError: expected integer but got "Mono"

En creusant un peu, je me suis rendu compte que j’arrivait à reproduire ce soucis avec des scripts simples utilisant tk:

from tkinter import Tk, Text
root = Tk()
log = Text(root)
root.mainloop()

J’obtient alors (sous python 3.8):

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    log = Text(root)
  File "/usr/lib/python3.8/tkinter/__init__.py", line 3554, in __init__
    Widget.__init__(self, master, 'text', cnf, kw)
  File "/usr/lib/python3.8/tkinter/__init__.py", line 2567, in __init__
    self.tk.call(
_tkinter.TclError: expected integer but got "Mono"

A l’origine j’utilisait python 3.6, dans ce cas la trace de l’erreure est un peu différente:

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    log = Text(root)
  File "/usr/lib/python3.6/tkinter/__init__.py", line 3106, in __init__
    Widget.__init__(self, master, 'text', cnf, kw)
  File "/usr/lib/python3.6/tkinter/__init__.py", line 2304, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: expected integer but got "Mono"

Le widget créé peut changer, il n’y en a que peu qui fonctionnent. Je n’ai retrouvé ce soucis exact que sur un post stackoverflow datant de 2018. Malheureusement, aucunes solutions n’a été donnée.

Je suis sur Archlinux et les paquets tk et tcl ont tout deux pour version 8.6.10–1.

J’ai affiché ce que donnait (widgetName, self._w) + extra + self._options(cnf)) et j’ai: ('text', '.!text').

Avez vous une idée de comment résoudre ça?

Merci pour votre aide!

+0 -0

Avec ton script simple, Python 3.6.4 sous Windows, je ne reproduit pas le bug.
Le script ouvre une fenêtre Tk vide. Copie de la fenêtre du shell Python 3.6.4 :

Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
========= RESTART: F:\Users\Mes documents\python 3.6\essai_tinker.py =========
+0 -0

C’est bien là le soucis, c’est que j’ai l’impression que le soucis vien plus de l’interface entre le tcl/tk et python que d’autre chose….. du coup je ne voie pas comment régler le soucis….

Pour l’instant j’ai juste changé le backend de matplotlib (j’utilise gtk3 à la place), mais ce problème m’intrigue…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte