mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
Step 1 of Tkinter renaming: move lib-tk modules into a new "tkinter" package.
This commit is contained in:
parent
ae6b9f3cb2
commit
bbc57d73a0
14 changed files with 52 additions and 51 deletions
|
@ -18,14 +18,14 @@ Actions are bound to events by resources (e.g. keyword argument
|
||||||
command) or with the method bind.
|
command) or with the method bind.
|
||||||
|
|
||||||
Example (Hello, World):
|
Example (Hello, World):
|
||||||
import Tkinter
|
import tkinter
|
||||||
from Tkconstants import *
|
from tkinter.constants import *
|
||||||
tk = Tkinter.Tk()
|
tk = tkinter.Tk()
|
||||||
frame = Tkinter.Frame(tk, relief=RIDGE, borderwidth=2)
|
frame = tkinter.Frame(tk, relief=RIDGE, borderwidth=2)
|
||||||
frame.pack(fill=BOTH,expand=1)
|
frame.pack(fill=BOTH,expand=1)
|
||||||
label = Tkinter.Label(frame, text="Hello, World")
|
label = tkinter.Label(frame, text="Hello, World")
|
||||||
label.pack(fill=X, expand=1)
|
label.pack(fill=X, expand=1)
|
||||||
button = Tkinter.Button(frame,text="Exit",command=tk.destroy)
|
button = tkinter.Button(frame,text="Exit",command=tk.destroy)
|
||||||
button.pack(side=BOTTOM)
|
button.pack(side=BOTTOM)
|
||||||
tk.mainloop()
|
tk.mainloop()
|
||||||
"""
|
"""
|
||||||
|
@ -34,12 +34,13 @@ __version__ = "$Revision$"
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
if sys.platform == "win32":
|
if sys.platform == "win32":
|
||||||
import FixTk # Attempt to configure Tcl/Tk without requiring PATH
|
# Attempt to configure Tcl/Tk without requiring PATH
|
||||||
|
from tkinter import _fix
|
||||||
import _tkinter # If this fails your Python may not be configured for Tk
|
import _tkinter # If this fails your Python may not be configured for Tk
|
||||||
tkinter = _tkinter # b/w compat for export
|
tkinter = _tkinter # b/w compat for export
|
||||||
TclError = _tkinter.TclError
|
TclError = _tkinter.TclError
|
||||||
from types import *
|
from types import *
|
||||||
from Tkconstants import *
|
from tkinter.constants import *
|
||||||
try:
|
try:
|
||||||
import MacOS; _MacOS = MacOS; del MacOS
|
import MacOS; _MacOS = MacOS; del MacOS
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -1696,7 +1697,7 @@ class Tk(Misc, Wm):
|
||||||
base_tcl = os.path.join(home, '.%s.tcl' % baseName)
|
base_tcl = os.path.join(home, '.%s.tcl' % baseName)
|
||||||
base_py = os.path.join(home, '.%s.py' % baseName)
|
base_py = os.path.join(home, '.%s.py' % baseName)
|
||||||
dir = {'self': self}
|
dir = {'self': self}
|
||||||
exec 'from Tkinter import *' in dir
|
exec 'from tkinter import *' in dir
|
||||||
if os.path.isfile(class_tcl):
|
if os.path.isfile(class_tcl):
|
||||||
self.tk.call('source', class_tcl)
|
self.tk.call('source', class_tcl)
|
||||||
if os.path.isfile(class_py):
|
if os.path.isfile(class_py):
|
|
@ -19,7 +19,7 @@
|
||||||
# - title: dialog title
|
# - title: dialog title
|
||||||
#
|
#
|
||||||
|
|
||||||
from tkCommonDialog import Dialog
|
from tkinter.commondialog import Dialog
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
|
@ -1,14 +1,14 @@
|
||||||
# base class for tk common dialogues
|
# base class for tk common dialogues
|
||||||
#
|
#
|
||||||
# this module provides a base class for accessing the common
|
# this module provides a base class for accessing the common
|
||||||
# dialogues available in Tk 4.2 and newer. use tkFileDialog,
|
# dialogues available in Tk 4.2 and newer. use filedialog,
|
||||||
# tkColorChooser, and tkMessageBox to access the individual
|
# colorchooser, and messagebox to access the individual
|
||||||
# dialogs.
|
# dialogs.
|
||||||
#
|
#
|
||||||
# written by Fredrik Lundh, May 1997
|
# written by Fredrik Lundh, May 1997
|
||||||
#
|
#
|
||||||
|
|
||||||
from Tkinter import *
|
from tkinter import *
|
||||||
|
|
||||||
class Dialog:
|
class Dialog:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Dialog.py -- Tkinter interface to the tk_dialog script.
|
# dialog.py -- Tkinter interface to the tk_dialog script.
|
||||||
|
|
||||||
from Tkinter import *
|
from tkinter import *
|
||||||
from Tkinter import _cnfmerge
|
from tkinter import _cnfmerge
|
||||||
|
|
||||||
if TkVersion <= 3.6:
|
if TkVersion <= 3.6:
|
||||||
DIALOG_ICON = 'warning'
|
DIALOG_ICON = 'warning'
|
|
@ -100,7 +100,7 @@ active; it will never call dnd_commit().
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
import Tkinter
|
import tkinter
|
||||||
|
|
||||||
|
|
||||||
# The factory function
|
# The factory function
|
||||||
|
@ -219,7 +219,7 @@ class Icon:
|
||||||
self.detach()
|
self.detach()
|
||||||
if not canvas:
|
if not canvas:
|
||||||
return
|
return
|
||||||
label = Tkinter.Label(canvas, text=self.name,
|
label = tkinter.Label(canvas, text=self.name,
|
||||||
borderwidth=2, relief="raised")
|
borderwidth=2, relief="raised")
|
||||||
id = canvas.create_window(x, y, window=label, anchor="nw")
|
id = canvas.create_window(x, y, window=label, anchor="nw")
|
||||||
self.canvas = canvas
|
self.canvas = canvas
|
||||||
|
@ -268,8 +268,8 @@ class Icon:
|
||||||
class Tester:
|
class Tester:
|
||||||
|
|
||||||
def __init__(self, root):
|
def __init__(self, root):
|
||||||
self.top = Tkinter.Toplevel(root)
|
self.top = tkinter.Toplevel(root)
|
||||||
self.canvas = Tkinter.Canvas(self.top, width=100, height=100)
|
self.canvas = tkinter.Canvas(self.top, width=100, height=100)
|
||||||
self.canvas.pack(fill="both", expand=1)
|
self.canvas.pack(fill="both", expand=1)
|
||||||
self.canvas.dnd_accept = self.dnd_accept
|
self.canvas.dnd_accept = self.dnd_accept
|
||||||
|
|
||||||
|
@ -300,9 +300,9 @@ class Tester:
|
||||||
source.attach(self.canvas, x, y)
|
source.attach(self.canvas, x, y)
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
root = Tkinter.Tk()
|
root = tkinter.Tk()
|
||||||
root.geometry("+1+1")
|
root.geometry("+1+1")
|
||||||
Tkinter.Button(command=root.quit, text="Quit").pack()
|
tkinter.Button(command=root.quit, text="Quit").pack()
|
||||||
t1 = Tester(root)
|
t1 = Tester(root)
|
||||||
t1.top.geometry("+1+60")
|
t1.top.geometry("+1+60")
|
||||||
t2 = Tester(root)
|
t2 = Tester(root)
|
|
@ -8,8 +8,8 @@ Classes:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from Tkinter import *
|
from tkinter import *
|
||||||
from Dialog import Dialog
|
from tkinter.dialog import Dialog
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import fnmatch
|
import fnmatch
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
__version__ = "0.9"
|
__version__ = "0.9"
|
||||||
|
|
||||||
import Tkinter
|
import tkinter
|
||||||
|
|
||||||
# weight/slant
|
# weight/slant
|
||||||
NORMAL = "normal"
|
NORMAL = "normal"
|
||||||
|
@ -65,7 +65,7 @@ class Font:
|
||||||
|
|
||||||
def __init__(self, root=None, font=None, name=None, exists=False, **options):
|
def __init__(self, root=None, font=None, name=None, exists=False, **options):
|
||||||
if not root:
|
if not root:
|
||||||
root = Tkinter._default_root
|
root = tkinter._default_root
|
||||||
if font:
|
if font:
|
||||||
# get actual settings corresponding to the given font
|
# get actual settings corresponding to the given font
|
||||||
font = root.tk.splitlist(root.tk.call("font", "actual", font))
|
font = root.tk.splitlist(root.tk.call("font", "actual", font))
|
||||||
|
@ -79,7 +79,7 @@ class Font:
|
||||||
self.delete_font = False
|
self.delete_font = False
|
||||||
# confirm font exists
|
# confirm font exists
|
||||||
if self.name not in root.tk.call("font", "names"):
|
if self.name not in root.tk.call("font", "names"):
|
||||||
raise Tkinter._tkinter.TclError, "named font %s does not already exist" % (self.name,)
|
raise tkinter._tkinter.TclError, "named font %s does not already exist" % (self.name,)
|
||||||
# if font config info supplied, apply it
|
# if font config info supplied, apply it
|
||||||
if font:
|
if font:
|
||||||
root.tk.call("font", "configure", self.name, *font)
|
root.tk.call("font", "configure", self.name, *font)
|
||||||
|
@ -166,13 +166,13 @@ class Font:
|
||||||
def families(root=None):
|
def families(root=None):
|
||||||
"Get font families (as a tuple)"
|
"Get font families (as a tuple)"
|
||||||
if not root:
|
if not root:
|
||||||
root = Tkinter._default_root
|
root = tkinter._default_root
|
||||||
return root.tk.splitlist(root.tk.call("font", "families"))
|
return root.tk.splitlist(root.tk.call("font", "families"))
|
||||||
|
|
||||||
def names(root=None):
|
def names(root=None):
|
||||||
"Get names of defined fonts (as a tuple)"
|
"Get names of defined fonts (as a tuple)"
|
||||||
if not root:
|
if not root:
|
||||||
root = Tkinter._default_root
|
root = tkinter._default_root
|
||||||
return root.tk.splitlist(root.tk.call("font", "names"))
|
return root.tk.splitlist(root.tk.call("font", "names"))
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
@ -180,7 +180,7 @@ def names(root=None):
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
root = Tkinter.Tk()
|
root = tkinter.Tk()
|
||||||
|
|
||||||
# create a font
|
# create a font
|
||||||
f = Font(family="times", size=30, weight=NORMAL)
|
f = Font(family="times", size=30, weight=NORMAL)
|
||||||
|
@ -202,10 +202,10 @@ if __name__ == "__main__":
|
||||||
f = Font(font=("Courier", 20, "bold"))
|
f = Font(font=("Courier", 20, "bold"))
|
||||||
print f.measure("hello"), f.metrics("linespace")
|
print f.measure("hello"), f.metrics("linespace")
|
||||||
|
|
||||||
w = Tkinter.Label(root, text="Hello, world", font=f)
|
w = tkinter.Label(root, text="Hello, world", font=f)
|
||||||
w.pack()
|
w.pack()
|
||||||
|
|
||||||
w = Tkinter.Button(root, text="Quit!", command=root.destroy)
|
w = tkinter.Button(root, text="Quit!", command=root.destroy)
|
||||||
w.pack()
|
w.pack()
|
||||||
|
|
||||||
fb = Font(font=w["font"]).copy()
|
fb = Font(font=w["font"]).copy()
|
||||||
|
@ -213,4 +213,4 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
w.config(font=fb)
|
w.config(font=fb)
|
||||||
|
|
||||||
Tkinter.mainloop()
|
tkinter.mainloop()
|
|
@ -22,7 +22,7 @@
|
||||||
# - type: dialog type; that is, which buttons to display (see below)
|
# - type: dialog type; that is, which buttons to display (see below)
|
||||||
#
|
#
|
||||||
|
|
||||||
from tkCommonDialog import Dialog
|
from tkinter.commondialog import Dialog
|
||||||
|
|
||||||
#
|
#
|
||||||
# constants
|
# constants
|
|
@ -10,8 +10,8 @@
|
||||||
# Most methods calls are inherited from the Text widget; Pack methods
|
# Most methods calls are inherited from the Text widget; Pack methods
|
||||||
# are redirected to the Frame widget however.
|
# are redirected to the Frame widget however.
|
||||||
|
|
||||||
from Tkinter import *
|
from tkinter import *
|
||||||
from Tkinter import _cnfmerge
|
from tkinter import _cnfmerge
|
||||||
|
|
||||||
class ScrolledText(Text):
|
class ScrolledText(Text):
|
||||||
def __init__(self, master=None, cnf=None, **kw):
|
def __init__(self, master=None, cnf=None, **kw):
|
|
@ -1,7 +1,7 @@
|
||||||
"""A simple but flexible modal dialog box."""
|
"""A simple but flexible modal dialog box."""
|
||||||
|
|
||||||
|
|
||||||
from Tkinter import *
|
from tkinter import *
|
||||||
|
|
||||||
|
|
||||||
class SimpleDialog:
|
class SimpleDialog:
|
|
@ -26,8 +26,8 @@
|
||||||
# appreciate the advantages.
|
# appreciate the advantages.
|
||||||
#
|
#
|
||||||
|
|
||||||
from Tkinter import *
|
from tkinter import *
|
||||||
from Tkinter import _flatten, _cnfmerge, _default_root
|
from tkinter import _flatten, _cnfmerge, _default_root
|
||||||
|
|
||||||
# WARNING - TkVersion is a limited precision floating point number
|
# WARNING - TkVersion is a limited precision floating point number
|
||||||
if TkVersion < 3.999:
|
if TkVersion < 3.999:
|
||||||
|
@ -57,7 +57,7 @@ TCL_ALL_EVENTS = 0
|
||||||
# BEWARE - this is implemented by copying some code from the Widget class
|
# BEWARE - this is implemented by copying some code from the Widget class
|
||||||
# in Tkinter (to override Widget initialization) and is therefore
|
# in Tkinter (to override Widget initialization) and is therefore
|
||||||
# liable to break.
|
# liable to break.
|
||||||
import Tkinter, os
|
import tkinter, os
|
||||||
|
|
||||||
# Could probably add this to Tkinter.Misc
|
# Could probably add this to Tkinter.Misc
|
||||||
class tixCommand:
|
class tixCommand:
|
||||||
|
@ -192,11 +192,11 @@ class tixCommand:
|
||||||
else:
|
else:
|
||||||
return self.tk.call('tix', 'resetoptions', newScheme, newFontSet)
|
return self.tk.call('tix', 'resetoptions', newScheme, newFontSet)
|
||||||
|
|
||||||
class Tk(Tkinter.Tk, tixCommand):
|
class Tk(tkinter.Tk, tixCommand):
|
||||||
"""Toplevel widget of Tix which represents mostly the main window
|
"""Toplevel widget of Tix which represents mostly the main window
|
||||||
of an application. It has an associated Tcl interpreter."""
|
of an application. It has an associated Tcl interpreter."""
|
||||||
def __init__(self, screenName=None, baseName=None, className='Tix'):
|
def __init__(self, screenName=None, baseName=None, className='Tix'):
|
||||||
Tkinter.Tk.__init__(self, screenName, baseName, className)
|
tkinter.Tk.__init__(self, screenName, baseName, className)
|
||||||
tixlib = os.environ.get('TIX_LIBRARY')
|
tixlib = os.environ.get('TIX_LIBRARY')
|
||||||
self.tk.eval('global auto_path; lappend auto_path [file dir [info nameof]]')
|
self.tk.eval('global auto_path; lappend auto_path [file dir [info nameof]]')
|
||||||
if tixlib is not None:
|
if tixlib is not None:
|
||||||
|
@ -212,7 +212,7 @@ class Tk(Tkinter.Tk, tixCommand):
|
||||||
def destroy(self):
|
def destroy(self):
|
||||||
# For safety, remove an delete_window binding before destroy
|
# For safety, remove an delete_window binding before destroy
|
||||||
self.protocol("WM_DELETE_WINDOW", "")
|
self.protocol("WM_DELETE_WINDOW", "")
|
||||||
Tkinter.Tk.destroy(self)
|
tkinter.Tk.destroy(self)
|
||||||
|
|
||||||
# The Tix 'tixForm' geometry manager
|
# The Tix 'tixForm' geometry manager
|
||||||
class Form:
|
class Form:
|
||||||
|
@ -260,9 +260,9 @@ class Form:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Tkinter.Widget.__bases__ = Tkinter.Widget.__bases__ + (Form,)
|
tkinter.Widget.__bases__ = tkinter.Widget.__bases__ + (Form,)
|
||||||
|
|
||||||
class TixWidget(Tkinter.Widget):
|
class TixWidget(tkinter.Widget):
|
||||||
"""A TixWidget class is used to package all (or most) Tix widgets.
|
"""A TixWidget class is used to package all (or most) Tix widgets.
|
||||||
|
|
||||||
Widget initialization is extended in two ways:
|
Widget initialization is extended in two ways:
|
||||||
|
@ -383,7 +383,7 @@ class TixWidget(Tkinter.Widget):
|
||||||
# These are missing from Tkinter
|
# These are missing from Tkinter
|
||||||
def image_create(self, imgtype, cnf={}, master=None, **kw):
|
def image_create(self, imgtype, cnf={}, master=None, **kw):
|
||||||
if not master:
|
if not master:
|
||||||
master = Tkinter._default_root
|
master = tkinter._default_root
|
||||||
if not master:
|
if not master:
|
||||||
raise RuntimeError, 'Too early to create image'
|
raise RuntimeError, 'Too early to create image'
|
||||||
if kw and cnf: cnf = _cnfmerge((cnf, kw))
|
if kw and cnf: cnf = _cnfmerge((cnf, kw))
|
|
@ -16,7 +16,7 @@ pictures can easily be drawn.
|
||||||
|
|
||||||
from math import * # Also for export
|
from math import * # Also for export
|
||||||
from time import sleep
|
from time import sleep
|
||||||
import Tkinter
|
import tkinter
|
||||||
|
|
||||||
speeds = ['fastest', 'fast', 'normal', 'slow', 'slowest']
|
speeds = ['fastest', 'fast', 'normal', 'slow', 'slowest']
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ class RawPen:
|
||||||
# Test the color first
|
# Test the color first
|
||||||
try:
|
try:
|
||||||
id = self._canvas.create_line(0, 0, 0, 0, fill=color)
|
id = self._canvas.create_line(0, 0, 0, 0, fill=color)
|
||||||
except Tkinter.TclError:
|
except tkinter.TclError:
|
||||||
raise Error, "bad color string: %r" % (color,)
|
raise Error, "bad color string: %r" % (color,)
|
||||||
self._set_color(color)
|
self._set_color(color)
|
||||||
return
|
return
|
||||||
|
@ -554,7 +554,7 @@ class RawPen:
|
||||||
# in case nhops==0
|
# in case nhops==0
|
||||||
self._canvas.coords(item, x0, y0, x1, y1)
|
self._canvas.coords(item, x0, y0, x1, y1)
|
||||||
self._canvas.itemconfigure(item, arrow="none")
|
self._canvas.itemconfigure(item, arrow="none")
|
||||||
except Tkinter.TclError:
|
except tkinter.TclError:
|
||||||
# Probably the window was closed!
|
# Probably the window was closed!
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
|
@ -638,13 +638,13 @@ class Pen(RawPen):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
global _root, _canvas
|
global _root, _canvas
|
||||||
if _root is None:
|
if _root is None:
|
||||||
_root = Tkinter.Tk()
|
_root = tkinter.Tk()
|
||||||
_root.wm_protocol("WM_DELETE_WINDOW", self._destroy)
|
_root.wm_protocol("WM_DELETE_WINDOW", self._destroy)
|
||||||
_root.title(_title)
|
_root.title(_title)
|
||||||
|
|
||||||
if _canvas is None:
|
if _canvas is None:
|
||||||
# XXX Should have scroll bars
|
# XXX Should have scroll bars
|
||||||
_canvas = Tkinter.Canvas(_root, background="white")
|
_canvas = tkinter.Canvas(_root, background="white")
|
||||||
_canvas.pack(expand=1, fill="both")
|
_canvas.pack(expand=1, fill="both")
|
||||||
|
|
||||||
setup(width=_width, height= _height, startx=_startx, starty=_starty)
|
setup(width=_width, height= _height, startx=_startx, starty=_starty)
|
Loading…
Add table
Add a link
Reference in a new issue