This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author klappnase
Recipients klappnase, serhiy.storchaka, tkinter
Date 2016-10-23.14:32:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1477233162.64.0.237221428586.issue28498@psf.upfronthosting.co.za>
In-reply-to
Content
Hi Miguel,
about _configure() :
the code you suggest:

    def _configure(self, cmd, cnf, kw):
        """Internal function."""
        if kw:
            cnf = _cnfmerge((cnf, kw))
        elif cnf:
            cnf = _cnfmerge(cnf)
        if cnf is None:
            return self._getconfigure(cmd)
        if isinstance(cnf, str):
            return self._getconfigure1(cmd + ('-'+cnf,))
        self.tk.call(cmd + self._options(cnf))

will break all other methods that use configure() and friends. A possible way to work around this might be:

    def _configure(self, cmd, cnf, kw):
        """Internal function."""
        if kw:
            cnf = _cnfmerge((cnf, kw))
        elif cnf:
            cnf = _cnfmerge(cnf)
        if not self._w in cmd:
            cmd = _flatten((self._w, cmd))
        if cnf is None:
            return self._getconfigure(cmd)
        if isinstance(cnf, str):
            return self._getconfigure1(cmd + ('-'+cnf,))
        self.tk.call(cmd + self._options(cnf))

Not sure if this is smart, though, it might require some thorough testing.

About getboolean() :

it seems like tkapp.getboolean() returns 1 or 0 when it is passed an integer value, at least this is still true here for Python-3.4.2:

$ python3
Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import *
>>> r=Tk()
>>> getboolean(1)
1
>>> getboolean('1')
True
>>> getboolean('yes')
True
>>> getboolean(True)
True
>>> 


Probably the best thing to do would be to fix this in the C code. The next best thing I think is to change tkinter.getboolean(), tkinter.Misc.getboolean() and tkinter.Misc._getboolean(). This however leaves a number of Tkinter methods like e.g. Text.compare() which directly use self.tk.getboolean() unresolved.
History
Date User Action Args
2016-10-23 14:32:42klappnasesetrecipients: + klappnase, serhiy.storchaka, tkinter
2016-10-23 14:32:42klappnasesetmessageid: <1477233162.64.0.237221428586.issue28498@psf.upfronthosting.co.za>
2016-10-23 14:32:42klappnaselinkissue28498 messages
2016-10-23 14:32:42klappnasecreate