Issue #6157: Fixed tkinter.Text.debug(). tkinter.Text.bbox() now raises
TypeError instead of TclError on wrong number of arguments. Original patch by Guilherme Polo.
This commit is contained in:
commit
4babb9111f
@ -2911,11 +2911,11 @@ class Text(Widget, XView, YView):
|
||||
|
||||
"""
|
||||
Widget.__init__(self, master, 'text', cnf, kw)
|
||||
def bbox(self, *args):
|
||||
def bbox(self, index):
|
||||
"""Return a tuple of (x,y,width,height) which gives the bounding
|
||||
box of the visible part of the character at the index in ARGS."""
|
||||
box of the visible part of the character at the given index."""
|
||||
return self._getints(
|
||||
self.tk.call((self._w, 'bbox') + args)) or None
|
||||
self.tk.call(self._w, 'bbox', index)) or None
|
||||
def tk_textSelectTo(self, index):
|
||||
self.tk.call('tk_textSelectTo', self._w, index)
|
||||
def tk_textBackspace(self):
|
||||
@ -2951,8 +2951,9 @@ class Text(Widget, XView, YView):
|
||||
def debug(self, boolean=None):
|
||||
"""Turn on the internal consistency checks of the B-Tree inside the text
|
||||
widget according to BOOLEAN."""
|
||||
return self.tk.getboolean(self.tk.call(
|
||||
self._w, 'debug', boolean))
|
||||
if boolean is None:
|
||||
return self.tk.call(self._w, 'debug')
|
||||
self.tk.call(self._w, 'debug', boolean)
|
||||
def delete(self, index1, index2=None):
|
||||
"""Delete the characters between INDEX1 and INDEX2 (not included)."""
|
||||
self.tk.call(self._w, 'delete', index1, index2)
|
||||
|
@ -14,6 +14,17 @@ class TextTest(unittest.TestCase):
|
||||
def tearDown(self):
|
||||
self.text.destroy()
|
||||
|
||||
def test_debug(self):
|
||||
text = self.text
|
||||
olddebug = text.debug()
|
||||
try:
|
||||
text.debug(0)
|
||||
self.assertEqual(text.debug(), 0)
|
||||
text.debug(1)
|
||||
self.assertEqual(text.debug(), 1)
|
||||
finally:
|
||||
text.debug(olddebug)
|
||||
self.assertEqual(text.debug(), olddebug)
|
||||
|
||||
def test_search(self):
|
||||
text = self.text
|
||||
|
@ -610,6 +610,19 @@ class TextTest(AbstractWidgetTest, unittest.TestCase):
|
||||
else:
|
||||
self.checkEnumParam(widget, 'wrap', 'char', 'none', 'word')
|
||||
|
||||
def test_bbox(self):
|
||||
widget = self.create()
|
||||
bbox = widget.bbox('1.1')
|
||||
self.assertEqual(len(bbox), 4)
|
||||
for item in bbox:
|
||||
self.assertIsInstance(item, int)
|
||||
|
||||
self.assertIsNone(widget.bbox('end'))
|
||||
self.assertRaises(tkinter.TclError, widget.bbox, 'noindex')
|
||||
self.assertRaises(tkinter.TclError, widget.bbox, None)
|
||||
self.assertRaises(TypeError, widget.bbox)
|
||||
self.assertRaises(TypeError, widget.bbox, '1.1', 'end')
|
||||
|
||||
|
||||
@add_standard_options(PixelSizeTests, StandardOptionsTests)
|
||||
class CanvasTest(AbstractWidgetTest, unittest.TestCase):
|
||||
|
@ -31,6 +31,10 @@ Core and Builtins
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #6157: Fixed tkinter.Text.debug(). tkinter.Text.bbox() now raises
|
||||
TypeError instead of TclError on wrong number of arguments. Original patch
|
||||
by Guilherme Polo.
|
||||
|
||||
- Issue #6160: The bbox() method of tkinter.Spinbox now returns a tuple of
|
||||
integers instead of a string. Based on patch by Guilherme Polo.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user