Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
20efa68b
Commit
20efa68b
authored
Nov 11, 2001
by
Martin v. Löwis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Patch #473002: Update Demo/tix tixwidgets.py et al.
parent
c252e630
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
542 additions
and
154 deletions
+542
-154
Demo/tix/INSTALL.txt
Demo/tix/INSTALL.txt
+20
-12
Demo/tix/README.txt
Demo/tix/README.txt
+2
-2
Demo/tix/samples/DirList.py
Demo/tix/samples/DirList.py
+142
-0
Demo/tix/samples/DirTree.py
Demo/tix/samples/DirTree.py
+108
-0
Demo/tix/samples/SHList1.py
Demo/tix/samples/SHList1.py
+5
-4
Demo/tix/samples/SHList2.py
Demo/tix/samples/SHList2.py
+9
-12
Demo/tix/tixwidgets.py
Demo/tix/tixwidgets.py
+256
-124
No files found.
Demo/tix/INSTALL.txt
View file @
20efa68b
$Id$
Installing
PyTix
Installing
Tix.py
----------------
0) To use
PyTix, you need Tcl/Tk (V8.2+), Tix (V8.1+) and Python (V2.1+
).
PyTix
has been written and tested on a Intel Pentium running RH Linux 5.2
0) To use
Tix.py, you need Tcl/Tk (V8.3.3), Tix (V8.1.1) and Python (V2.1.1
).
Tix.py
has been written and tested on a Intel Pentium running RH Linux 5.2
and Mandrake Linux 7.0 and Windows with the above mentioned packages.
Older versions, e.g. Tix 4.1 and Tk 8.0, might also work.
There is nothing OS-specific in
PyTix
itself so it should work on
There is nothing OS-specific in
Tix.py
itself so it should work on
any machine with Tix and Python installed. You can get Tcl and Tk
from http://dev.scriptics.com and Tix from http://tix.sourceforge.net.
1) Build and install Tcl/Tk 8.
2 or 8.3. Build and install Tix 8.1 or better
.
1) Build and install Tcl/Tk 8.
3. Build and install Tix 8.1
.
Ensure that Tix is properly installed by running tixwish and executing
the demo programs. Under Unix, use the --enable-shared configure option
for all three. We recommend tcl8.
2.3 for this release of PyTix
.
for all three. We recommend tcl8.
3.3 for this release of Tix.py
.
2) Modify Modules/Setup.dist and setup.py to change the version of the
tix library from tix4.1.8.0 to tix8.1.8.2
2a) If you have a distribution like ActiveState with a tcl subdirectory
of $PYTHONHOME, which contains the directories tcl8.3 and tk8.3,
make a directory tix8.1 as well. Recursively copy the files from
<tix>/library to $PYTHONHOME/lib/tix8.1, and copy the dynamic library
(tix8183.dll or libtix8.1.8.3.so) to the same place as the tcl dynamic
libraries ($PYTHONHOME/Dlls or lib/python-2.1/lib-dynload). In this
case you are all installed, and you can skip to the end.
2b) Modify Modules/Setup.dist and setup.py to change the version of the
tix library from tix4.1.8.0 to tix8.1.8.3
These modified files can be used for Tkinter with or without Tix.
3) The default is to build dynamically, and use the Tcl 'package require'.
...
...
@@ -44,9 +52,9 @@ _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
# *** Uncomment and edit for TOGL extension only:
# -DWITH_TOGL togl.c \
# *** Uncomment and edit for Tix extension only:
-DWITH_TIX -ltix8.1.8.
2
\
-DWITH_TIX -ltix8.1.8.
3
\
# *** Uncomment and edit to reflect your Tcl/Tk versions:
-ltk8.
2 -ltcl8.2
\
-ltk8.
3 -ltcl8.3
\
# *** Uncomment and edit to reflect where your X11 libraries are:
-L/usr/X11R6/lib \
# *** Or uncomment this for Solaris:
...
...
@@ -69,8 +77,8 @@ If this does not work, you may need to tell python where to find
the Tcl, Tk and Tix library files. This is done by setting the
TCL_LIBRARY, TK_LIBRARY and TIX_LIBRARY environment variables. Try this:
env TCL_LIBRARY=/usr/local/lib/tcl8.
2
\
TK_LIBRARY=/usr/local/lib/tk8.
2
\
env TCL_LIBRARY=/usr/local/lib/tcl8.
3
\
TK_LIBRARY=/usr/local/lib/tk8.
3
\
TIX_LIBRARY=/usr/local/lib/tix8.1 \
/usr/local/bin/python Demo/tix/tixwidgets.py
...
...
Demo/tix/README.txt
View file @
20efa68b
About
PyTix
About
Tix.py
-----------
PyTix
is based on an idea of Jean-Marc Lugrin (lugrin@ms.com) who wrote
Tix.py
is based on an idea of Jean-Marc Lugrin (lugrin@ms.com) who wrote
pytix (another Python-Tix marriage). Tix widgets are an attractive and
useful extension to Tk. See http://tix.sourceforge.net
for more details about Tix and how to get it.
...
...
Demo/tix/samples/DirList.py
0 → 100755
View file @
20efa68b
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id$
#
# Tix Demostration Program
#
# This sample program is structured in such a way so that it can be
# executed from the Tix demo program "widget": it must have a
# procedure called "RunSample". It should also have the "if" statment
# at the end of this file so that it can be run as a standalone
# program using tixwish.
# This file demonstrates the use of the tixDirList widget -- you can
# use it for the user to select a directory. For example, an installation
# program can use the tixDirList widget to ask the user to select the
# installation directory for an application.
#
import
Tix
,
os
,
copy
from
Tkconstants
import
*
TCL_DONT_WAIT
=
1
<<
1
TCL_WINDOW_EVENTS
=
1
<<
2
TCL_FILE_EVENTS
=
1
<<
3
TCL_TIMER_EVENTS
=
1
<<
4
TCL_IDLE_EVENTS
=
1
<<
5
TCL_ALL_EVENTS
=
0
def
RunSample
(
root
):
global
dirlist
dirlist
=
DemoDirList
(
root
)
dirlist
.
mainloop
()
dirlist
.
destroy
()
class
DemoDirList
:
def
__init__
(
self
,
w
):
self
.
root
=
w
self
.
exit
=
-
1
z
=
w
.
winfo_toplevel
()
z
.
wm_title
(
'Tix.DirList Widget Demo'
)
# Create the tixDirList and the tixLabelEntry widgets on the on the top
# of the dialog box
# bg = root.tk.eval('tix option get bg')
# adding bg=bg crashes Windows pythonw tk8.3.3 Python 2.1.0
top
=
Tix
.
Frame
(
w
,
relief
=
RAISED
,
bd
=
1
)
# Create the DirList widget. By default it will show the current
# directory
#
#
top
.
dir
=
Tix
.
DirList
(
top
)
top
.
dir
.
hlist
[
'width'
]
=
40
# When the user presses the ".." button, the selected directory
# is "transferred" into the entry widget
#
top
.
btn
=
Tix
.
Button
(
top
,
text
=
" >> "
,
pady
=
0
)
# We use a LabelEntry to hold the installation directory. The user
# can choose from the DirList widget, or he can type in the directory
# manually
#
top
.
ent
=
Tix
.
LabelEntry
(
top
,
label
=
"Installation Directory:"
,
labelside
=
'top'
,
options
=
'''
entry.width 40
label.anchor w
'''
)
font
=
self
.
root
.
tk
.
eval
(
'tix option get fixed_font'
)
# font = self.root.master.tix_option_get('fixed_font')
top
.
ent
.
entry
[
'font'
]
=
font
self
.
dlist_dir
=
copy
.
copy
(
os
.
curdir
)
# This should work setting the entry's textvariable
top
.
ent
.
entry
[
'textvariable'
]
=
self
.
dlist_dir
top
.
btn
[
'command'
]
=
lambda
dir
=
top
.
dir
,
ent
=
top
.
ent
,
self
=
self
:
\
self
.
copy_name
(
dir
,
ent
)
# top.ent.entry.insert(0,'tix'+`self`)
top
.
ent
.
entry
.
bind
(
'<Return>'
,
lambda
self
=
self
:
self
.
okcmd
()
)
top
.
pack
(
expand
=
'yes'
,
fill
=
'both'
,
side
=
TOP
)
top
.
dir
.
pack
(
expand
=
1
,
fill
=
BOTH
,
padx
=
4
,
pady
=
4
,
side
=
LEFT
)
top
.
btn
.
pack
(
anchor
=
's'
,
padx
=
4
,
pady
=
4
,
side
=
LEFT
)
top
.
ent
.
pack
(
expand
=
1
,
fill
=
X
,
anchor
=
's'
,
padx
=
4
,
pady
=
4
,
side
=
LEFT
)
# Use a ButtonBox to hold the buttons.
#
box
=
Tix
.
ButtonBox
(
w
,
orientation
=
'horizontal'
)
box
.
add
(
'ok'
,
text
=
'Ok'
,
underline
=
0
,
width
=
6
,
command
=
lambda
self
=
self
:
self
.
okcmd
()
)
box
.
add
(
'cancel'
,
text
=
'Cancel'
,
underline
=
0
,
width
=
6
,
command
=
lambda
self
=
self
:
self
.
quitcmd
()
)
box
.
pack
(
anchor
=
's'
,
fill
=
'x'
,
side
=
BOTTOM
)
z
.
wm_protocol
(
"WM_DELETE_WINDOW"
,
lambda
self
=
self
:
self
.
quitcmd
())
def
copy_name
(
self
,
dir
,
ent
):
# This should work as it is the entry's textvariable
self
.
dlist_dir
=
dir
.
cget
(
'value'
)
# but it isn't so I'll do it manually
ent
.
entry
.
delete
(
0
,
'end'
)
ent
.
entry
.
insert
(
0
,
self
.
dlist_dir
)
def
okcmd
(
self
):
# tixDemo:Status "You have selected the directory" + $self.dlist_dir
self
.
quitcmd
()
def
quitcmd
(
self
):
# self.root.destroy()
self
.
exit
=
0
def
mainloop
(
self
):
while
self
.
exit
<
0
:
self
.
root
.
tk
.
dooneevent
(
TCL_ALL_EVENTS
)
# self.root.tk.dooneevent(TCL_DONT_WAIT)
def
destroy
(
self
):
self
.
root
.
destroy
()
# This "if" statement makes it possible to run this script file inside or
# outside of the main demo program "widget".
#
if
__name__
==
'__main__'
:
import
tkMessageBox
,
traceback
try
:
root
=
Tix
.
Tk
()
RunSample
(
root
)
except
:
t
,
v
,
tb
=
sys
.
exc_info
()
text
=
"Error running the demo script:
\
n
"
for
line
in
traceback
.
format_exception
(
t
,
v
,
tb
):
text
=
text
+
line
+
'
\
n
'
d
=
tkMessageBox
.
showerror
(
'Tix Demo Error'
,
text
)
Demo/tix/samples/DirTree.py
0 → 100755
View file @
20efa68b
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id$
#
# Tix Demostration Program
#
# This sample program is structured in such a way so that it can be
# executed from the Tix demo program "widget": it must have a
# procedure called "RunSample". It should also have the "if" statment
# at the end of this file so that it can be run as a standalone
# program using tixwish.
# This file demonstrates the use of the tixDirTree widget -- you can
# use it for the user to select a directory. For example, an installation
# program can use the tixDirTree widget to ask the user to select the
# installation directory for an application.
#
import
Tix
,
os
,
copy
from
Tkconstants
import
*
def
RunSample
(
w
):
DemoDirTree
(
w
)
class
DemoDirTree
:
def
__init__
(
self
,
w
):
self
.
root
=
w
z
=
w
.
winfo_toplevel
()
z
.
wm_title
(
'Tix.DirTree Widget Demo'
)
# Create the tixDirTree and the tixLabelEntry widgets on the on the top
# of the dialog box
# bg = root.tk.eval('tix option get bg')
# adding bg=bg crashes Windows pythonw tk8.3.3 Python 2.1.0
top
=
Tix
.
Frame
(
w
,
relief
=
RAISED
,
bd
=
1
)
# Create the DirTree widget. By default it will show the current
# directory
#
#
top
.
dir
=
Tix
.
DirTree
(
top
)
top
.
dir
.
hlist
[
'width'
]
=
40
# When the user presses the ".." button, the selected directory
# is "transferred" into the entry widget
#
top
.
btn
=
Tix
.
Button
(
top
,
text
=
" >> "
,
pady
=
0
)
# We use a LabelEntry to hold the installation directory. The user
# can choose from the DirTree widget, or he can type in the directory
# manually
#
top
.
ent
=
Tix
.
LabelEntry
(
top
,
label
=
"Installation Directory:"
,
labelside
=
'top'
,
options
=
'''
entry.width 40
label.anchor w
'''
)
self
.
dlist_dir
=
copy
.
copy
(
os
.
curdir
)
top
.
ent
.
entry
[
'textvariable'
]
=
self
.
dlist_dir
top
.
btn
[
'command'
]
=
lambda
dir
=
top
.
dir
,
ent
=
top
.
ent
,
self
=
self
:
\
self
.
copy_name
(
dir
,
ent
)
top
.
ent
.
entry
.
bind
(
'<Return>'
,
lambda
self
=
self
:
self
.
okcmd
()
)
top
.
pack
(
expand
=
'yes'
,
fill
=
'both'
,
side
=
TOP
)
top
.
dir
.
pack
(
expand
=
1
,
fill
=
BOTH
,
padx
=
4
,
pady
=
4
,
side
=
LEFT
)
top
.
btn
.
pack
(
anchor
=
's'
,
padx
=
4
,
pady
=
4
,
side
=
LEFT
)
top
.
ent
.
pack
(
expand
=
1
,
fill
=
X
,
anchor
=
's'
,
padx
=
4
,
pady
=
4
,
side
=
LEFT
)
# Use a ButtonBox to hold the buttons.
#
box
=
Tix
.
ButtonBox
(
w
,
orientation
=
'horizontal'
)
box
.
add
(
'ok'
,
text
=
'Ok'
,
underline
=
0
,
width
=
6
,
command
=
lambda
self
=
self
:
self
.
okcmd
()
)
box
.
add
(
'cancel'
,
text
=
'Cancel'
,
underline
=
0
,
width
=
6
,
command
=
lambda
self
=
self
:
self
.
quitcmd
()
)
box
.
pack
(
anchor
=
's'
,
fill
=
'x'
,
side
=
BOTTOM
)
def
copy_name
(
self
,
dir
,
ent
):
# This should work as it is the entry's textvariable
self
.
dlist_dir
=
dir
.
cget
(
'value'
)
# but it isn't so I'll do it manually
ent
.
entry
.
delete
(
0
,
'end'
)
ent
.
entry
.
insert
(
0
,
self
.
dlist_dir
)
def
okcmd
(
self
):
# tixDemo:Status "You have selected the directory" + $self.dlist_dir
self
.
quitcmd
()
def
quitcmd
(
self
):
self
.
root
.
destroy
()
# This "if" statement makes it possible to run this script file inside or
# outside of the main demo program "widget".
#
if
__name__
==
'__main__'
:
root
=
Tix
.
Tk
()
RunSample
(
root
)
root
.
mainloop
()
root
.
destroy
()
Demo/tix/samples/SHList1.py
View file @
20efa68b
#
!/usr/local/bin/python
#
-*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id$
#
...
...
@@ -57,7 +57,7 @@ def RunSample (w) :
for
boss
,
name
in
bosses
:
if
count
:
f
=
Tix
.
Frame
(
hlist
,
name
=
'sep%d'
%
count
,
height
=
2
,
width
=
150
,
bd
=
2
,
relief
=
Tix
.
SUNKEN
,
bg
=
hlist
[
'bg'
]
)
bd
=
2
,
relief
=
Tix
.
SUNKEN
)
hlist
.
add_child
(
itemtype
=
Tix
.
WINDOW
,
window
=
f
,
state
=
Tix
.
DISABLED
)
...
...
@@ -89,10 +89,10 @@ def RunSample (w) :
#
box
=
Tix
.
ButtonBox
(
top
,
orientation
=
Tix
.
HORIZONTAL
)
box
.
add
(
'ok'
,
text
=
'Ok'
,
underline
=
0
,
width
=
6
,
command
=
lambda
w
=
w
:
w
.
destroy
()
)
command
=
lambda
w
=
w
:
w
.
quit
()
)
box
.
add
(
'cancel'
,
text
=
'Cancel'
,
underline
=
0
,
width
=
6
,
command
=
lambda
w
=
w
:
w
.
destroy
()
)
command
=
lambda
w
=
w
:
w
.
quit
()
)
box
.
pack
(
side
=
Tix
.
BOTTOM
,
fill
=
Tix
.
X
)
top
.
pack
(
side
=
Tix
.
TOP
,
fill
=
Tix
.
BOTH
,
expand
=
1
)
...
...
@@ -105,3 +105,4 @@ if __name__== '__main__' :
root
=
Tix
.
Tk
()
RunSample
(
root
)
root
.
mainloop
()
root
.
destroy
()
Demo/tix/samples/SHList2.py
View file @
20efa68b
#
!/usr/local/bin/python
#
-*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id$
#
...
...
@@ -43,7 +43,7 @@ def RunSample (w) :
# First some styles for the headers
style
=
{}
style
[
'header'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
fg
=
'black'
,
refwindow
=
top
,
style
[
'header'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
refwindow
=
top
,
anchor
=
Tix
.
CENTER
,
padx
=
8
,
pady
=
2
,
font
=
boldfont
)
hlist
.
header_create
(
0
,
itemtype
=
Tix
.
TEXT
,
text
=
'Name'
,
...
...
@@ -78,17 +78,13 @@ def RunSample (w) :
(
'chuck'
,
'jeff'
,
'Chuck McLean'
,
'Cleaner'
)
]
style
[
'mgr_name'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
refwindow
=
top
,
fg
=
'#202060'
,
selectforeground
=
'#202060'
,
font
=
boldfont
)
style
[
'mgr_name'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
refwindow
=
top
)
style
[
'mgr_posn'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
padx
=
8
,
refwindow
=
top
,
fg
=
'#202060'
,
selectforeground
=
'#202060'
)
style
[
'mgr_posn'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
padx
=
8
,
refwindow
=
top
)
style
[
'empl_name'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
refwindow
=
top
,
fg
=
'#602020'
,
selectforeground
=
'#602020'
,
font
=
boldfont
)
style
[
'empl_name'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
refwindow
=
top
)
style
[
'empl_posn'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
padx
=
8
,
refwindow
=
top
,
fg
=
'#602020'
,
selectforeground
=
'#602020'
)
style
[
'empl_posn'
]
=
Tix
.
DisplayStyle
(
Tix
.
TEXT
,
padx
=
8
,
refwindow
=
top
)
# Let configure the appearance of the HList subwidget
#
...
...
@@ -130,10 +126,10 @@ def RunSample (w) :
#
box
=
Tix
.
ButtonBox
(
top
,
orientation
=
Tix
.
HORIZONTAL
)
box
.
add
(
'ok'
,
text
=
'Ok'
,
underline
=
0
,
width
=
6
,
command
=
lambda
w
=
w
:
w
.
destroy
()
)
command
=
lambda
w
=
w
:
w
.
quit
()
)
box
.
add
(
'cancel'
,
text
=
'Cancel'
,
underline
=
0
,
width
=
6
,
command
=
lambda
w
=
w
:
w
.
destroy
()
)
command
=
lambda
w
=
w
:
w
.
quit
()
)
box
.
pack
(
side
=
Tix
.
BOTTOM
,
fill
=
Tix
.
X
)
top
.
pack
(
side
=
Tix
.
TOP
,
fill
=
Tix
.
BOTH
,
expand
=
1
)
...
...
@@ -146,3 +142,4 @@ if __name__== '__main__' :
root
=
Tix
.
Tk
()
RunSample
(
root
)
root
.
mainloop
()
root
.
destroy
()
Demo/tix/tixwidgets.py
View file @
20efa68b
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment