A newly created item is placed at the top of the list; the order can be
changed with :meth:`tag_raise` and :meth:`tag_lower`.
+ .. method:: tk_print()
+
+ Print the contents of the canvas using the native print dialog.
+ Requires Tk 8.7/9.0 or newer.
+
+ .. versionadded:: next
+
.. method:: create_arc(*args, **kw)
create_bitmap(*args, **kw)
create_image(*args, **kw)
to its base; several modifiers may be combined and are applied from left to
right, for example ``'insert wordstart - 1 c'``.
+ .. method:: tk_print()
+
+ Print the contents of the text widget using the native print dialog.
+ Requires Tk 8.7/9.0 or newer.
+
+ .. versionadded:: next
+
.. method:: insert(index, chars, *args)
Insert the string *chars* just before the character at *index* (if
report the user idle time.
(Contributed by Serhiy Storchaka in :gh:`151881`.)
+* Added the :meth:`!tk_print` method to :class:`tkinter.Canvas` and
+ :class:`tkinter.Text` which prints the contents of the widget using the
+ native print dialog. It requires Tk 8.7/9.0 or newer.
+ (Contributed by Serhiy Storchaka in :gh:`153256`.)
+
* Added new window-management methods :meth:`~tkinter.Misc.winfo_isdark`
(dark mode detection), :meth:`~tkinter.Wm.wm_iconbadge` (application icon
badge) and :meth:`~tkinter.Wm.wm_stackorder` (toplevel stacking order).
# Resetting the timer returns None and does not raise.
self.assertIsNone(self.root.tk_inactive(reset=True))
+ def test_tk_print(self):
+ # tk print supports only canvas and text widgets, so tk_print is a
+ # method of Canvas and Text only. Calling it opens the print
+ # dialog, so the behavior itself cannot be tested here.
+ self.assertHasAttr(tkinter.Canvas, 'tk_print')
+ self.assertHasAttr(tkinter.Text, 'tk_print')
+ self.assertNotHasAttr(tkinter.Frame, 'tk_print')
+ self.assertNotHasAttr(tkinter.Misc, 'tk_print')
+
def test_wait_variable(self):
var = tkinter.StringVar(self.root)
self.assertEqual(self.root.waitvar, self.root.wait_variable)
yscrollcommand, yscrollincrement."""
Widget.__init__(self, master, 'canvas', cnf, kw)
+ def tk_print(self):
+ """Print the contents of the canvas using the native print dialog.
+
+ Requires Tk 8.7/9.0 or newer."""
+ self.tk.call('tk', 'print', self._w)
+
def addtag(self, *args):
"""Internal function."""
self.tk.call((self._w, 'addtag') + args)
"""
Widget.__init__(self, master, 'text', cnf, kw)
+ def tk_print(self):
+ """Print the contents of the text widget using the native print dialog.
+
+ Requires Tk 8.7/9.0 or newer."""
+ self.tk.call('tk', 'print', self._w)
+
def bbox(self, index): # overrides Misc.bbox
"""Return a tuple of (x,y,width,height) which gives the bounding
box of the visible part of the character at the given index."""
--- /dev/null
+Added the :meth:`!tk_print` method to :class:`tkinter.Canvas` and
+:class:`tkinter.Text` which prints the contents of the widget using the
+native print dialog. It requires Tk 8.7/9.0 or newer.