Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
ac4f8d31
Kaydet (Commit)
ac4f8d31
authored
Agu 29, 1995
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Initial revision
üst
43245366
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
422 additions
and
0 deletions
+422
-0
FileDialog.py
Lib/lib-tk/FileDialog.py
+211
-0
FileDialog.py
Lib/tkinter/FileDialog.py
+211
-0
No files found.
Lib/lib-tk/FileDialog.py
0 → 100644
Dosyayı görüntüle @
ac4f8d31
"""File selection dialog classes.
Classes:
- FileDialog
- LoadFileDialog
- SaveFileDialog
XXX Bugs:
- The fields are not labeled
- Default doesn't have absolute pathname
- Each FileDialog instance can be used only once
- There is no easy way for an application to add widgets of its own
"""
from
Tkinter
import
*
from
Dialog
import
Dialog
ANCHOR
=
'anchor'
import
os
import
fnmatch
class
FileDialog
:
"""Standard file selection dialog -- no checks on selected file.
Usage:
d = FileDialog(master)
file = d.go(directory, pattern, default)
if file is None: ...canceled...
"""
title
=
"File Selection Dialog"
def
__init__
(
self
,
master
):
self
.
master
=
master
self
.
directory
=
None
self
.
top
=
Toplevel
(
master
)
self
.
top
.
title
(
self
.
title
)
self
.
filter
=
Entry
(
self
.
top
)
self
.
filter
.
pack
(
fill
=
X
)
self
.
filter
.
bind
(
'<Return>'
,
self
.
filter_command
)
self
.
midframe
=
Frame
(
self
.
top
)
self
.
midframe
.
pack
(
expand
=
YES
,
fill
=
BOTH
)
self
.
dirs
=
Listbox
(
self
.
midframe
)
self
.
dirs
.
pack
(
side
=
LEFT
,
expand
=
YES
,
fill
=
BOTH
)
self
.
dirs
.
bind
(
'<ButtonRelease-1>'
,
self
.
dirs_select_event
)
self
.
dirs
.
bind
(
'<Double-ButtonRelease-1>'
,
self
.
dirs_double_event
)
self
.
files
=
Listbox
(
self
.
midframe
)
self
.
files
.
pack
(
side
=
RIGHT
,
expand
=
YES
,
fill
=
BOTH
)
self
.
files
.
bind
(
'<ButtonRelease-1>'
,
self
.
files_select_event
)
self
.
files
.
bind
(
'<Double-ButtonRelease-1>'
,
self
.
files_double_event
)
self
.
selection
=
Entry
(
self
.
top
)
self
.
selection
.
pack
(
fill
=
X
)
self
.
selection
.
bind
(
'<Return>'
,
self
.
ok_event
)
self
.
botframe
=
Frame
(
self
.
top
)
self
.
botframe
.
pack
(
fill
=
X
)
self
.
ok_button
=
Button
(
self
.
botframe
,
text
=
"OK"
,
command
=
self
.
ok_command
)
self
.
ok_button
.
pack
(
side
=
LEFT
)
self
.
filter_button
=
Button
(
self
.
botframe
,
text
=
"Filter"
,
command
=
self
.
filter_command
)
self
.
filter_button
.
pack
(
side
=
LEFT
,
expand
=
YES
)
self
.
cancel_button
=
Button
(
self
.
botframe
,
text
=
"Cancel"
,
command
=
self
.
cancel_command
)
self
.
cancel_button
.
pack
(
side
=
RIGHT
)
def
go
(
self
,
directory
=
os
.
curdir
,
pattern
=
"*"
,
default
=
""
):
self
.
directory
=
directory
self
.
set_filter
(
directory
,
pattern
)
self
.
set_selection
(
default
)
self
.
selection
.
focus_set
()
self
.
filter_command
()
self
.
top
.
grab_set
()
try
:
self
.
master
.
mainloop
()
except
SystemExit
,
how
:
self
.
top
.
destroy
()
return
how
def
dirs_double_event
(
self
,
event
):
## self.dirs_select_event(event)
self
.
filter_command
()
def
dirs_select_event
(
self
,
event
):
dir
,
pat
=
self
.
get_filter
()
subdir
=
self
.
dirs
.
get
(
ANCHOR
)
dir
=
os
.
path
.
normpath
(
os
.
path
.
join
(
self
.
directory
,
subdir
))
self
.
set_filter
(
dir
,
pat
)
def
files_double_event
(
self
,
event
):
## self.files_select_event(event)
## self.master.update_idletasks()
self
.
ok_command
()
def
files_select_event
(
self
,
event
):
file
=
self
.
files
.
get
(
ANCHOR
)
self
.
set_selection
(
file
)
def
ok_event
(
self
,
event
):
self
.
ok_command
()
def
ok_command
(
self
):
raise
SystemExit
,
self
.
selection
.
get
()
def
filter_command
(
self
,
event
=
None
):
dir
,
pat
=
self
.
get_filter
()
try
:
names
=
os
.
listdir
(
dir
)
except
os
.
error
:
self
.
master
.
bell
()
return
self
.
directory
=
dir
self
.
set_filter
(
dir
,
pat
)
names
.
sort
()
subdirs
=
[
os
.
pardir
]
matchingfiles
=
[]
for
name
in
names
:
fullname
=
os
.
path
.
join
(
dir
,
name
)
if
os
.
path
.
isdir
(
fullname
):
subdirs
.
append
(
name
)
elif
fnmatch
.
fnmatch
(
name
,
pat
):
matchingfiles
.
append
(
name
)
self
.
dirs
.
delete
(
0
,
END
)
for
name
in
subdirs
:
self
.
dirs
.
insert
(
END
,
name
)
self
.
files
.
delete
(
0
,
END
)
for
name
in
matchingfiles
:
self
.
files
.
insert
(
END
,
name
)
def
get_filter
(
self
):
filter
=
self
.
filter
.
get
()
if
filter
[
-
1
:]
==
os
.
sep
:
filter
=
filter
+
"*"
return
os
.
path
.
split
(
filter
)
def
cancel_command
(
self
):
raise
SystemExit
,
None
def
set_filter
(
self
,
dir
,
pat
):
self
.
filter
.
delete
(
0
,
END
)
self
.
filter
.
insert
(
END
,
os
.
path
.
join
(
dir
or
os
.
curdir
,
pat
or
"*"
))
def
set_selection
(
self
,
file
):
self
.
selection
.
delete
(
0
,
END
)
self
.
selection
.
insert
(
END
,
os
.
path
.
join
(
self
.
directory
,
file
))
class
LoadFileDialog
(
FileDialog
):
"""File selection dialog which checks that the file exists."""
title
=
"Load File Selection Dialog"
def
ok_command
(
self
):
file
=
self
.
selection
.
get
()
if
not
os
.
path
.
isfile
(
file
):
self
.
master
.
bell
()
else
:
raise
SystemExit
,
file
class
SaveFileDialog
(
FileDialog
):
"""File selection dialog which checks that the file may be created."""
title
=
"Save File Selection Dialog"
def
ok_command
(
self
):
file
=
self
.
selection
.
get
()
if
os
.
path
.
exists
(
file
):
if
os
.
path
.
isdir
(
file
):
self
.
master
.
bell
()
return
d
=
Dialog
(
self
.
master
,
title
=
"Overwrite Existing File Question"
,
text
=
"Overwrite existing file
%
s?"
%
`file`
,
bitmap
=
'questhead'
,
default
=
0
,
strings
=
(
"Yes"
,
"Cancel"
))
if
d
.
num
!=
0
:
file
=
None
else
:
head
,
tail
=
os
.
path
.
split
(
file
)
if
not
os
.
path
.
isdir
(
head
):
self
.
master
.
bell
()
return
raise
SystemExit
,
file
def
test
():
"""Simple test program."""
root
=
Tk
()
root
.
withdraw
()
fd
=
LoadFileDialog
(
root
)
loadfile
=
fd
.
go
()
fd
=
SaveFileDialog
(
root
)
savefile
=
fd
.
go
()
print
loadfile
,
savefile
if
__name__
==
'__main__'
:
test
()
Lib/tkinter/FileDialog.py
0 → 100755
Dosyayı görüntüle @
ac4f8d31
"""File selection dialog classes.
Classes:
- FileDialog
- LoadFileDialog
- SaveFileDialog
XXX Bugs:
- The fields are not labeled
- Default doesn't have absolute pathname
- Each FileDialog instance can be used only once
- There is no easy way for an application to add widgets of its own
"""
from
Tkinter
import
*
from
Dialog
import
Dialog
ANCHOR
=
'anchor'
import
os
import
fnmatch
class
FileDialog
:
"""Standard file selection dialog -- no checks on selected file.
Usage:
d = FileDialog(master)
file = d.go(directory, pattern, default)
if file is None: ...canceled...
"""
title
=
"File Selection Dialog"
def
__init__
(
self
,
master
):
self
.
master
=
master
self
.
directory
=
None
self
.
top
=
Toplevel
(
master
)
self
.
top
.
title
(
self
.
title
)
self
.
filter
=
Entry
(
self
.
top
)
self
.
filter
.
pack
(
fill
=
X
)
self
.
filter
.
bind
(
'<Return>'
,
self
.
filter_command
)
self
.
midframe
=
Frame
(
self
.
top
)
self
.
midframe
.
pack
(
expand
=
YES
,
fill
=
BOTH
)
self
.
dirs
=
Listbox
(
self
.
midframe
)
self
.
dirs
.
pack
(
side
=
LEFT
,
expand
=
YES
,
fill
=
BOTH
)
self
.
dirs
.
bind
(
'<ButtonRelease-1>'
,
self
.
dirs_select_event
)
self
.
dirs
.
bind
(
'<Double-ButtonRelease-1>'
,
self
.
dirs_double_event
)
self
.
files
=
Listbox
(
self
.
midframe
)
self
.
files
.
pack
(
side
=
RIGHT
,
expand
=
YES
,
fill
=
BOTH
)
self
.
files
.
bind
(
'<ButtonRelease-1>'
,
self
.
files_select_event
)
self
.
files
.
bind
(
'<Double-ButtonRelease-1>'
,
self
.
files_double_event
)
self
.
selection
=
Entry
(
self
.
top
)
self
.
selection
.
pack
(
fill
=
X
)
self
.
selection
.
bind
(
'<Return>'
,
self
.
ok_event
)
self
.
botframe
=
Frame
(
self
.
top
)
self
.
botframe
.
pack
(
fill
=
X
)
self
.
ok_button
=
Button
(
self
.
botframe
,
text
=
"OK"
,
command
=
self
.
ok_command
)
self
.
ok_button
.
pack
(
side
=
LEFT
)
self
.
filter_button
=
Button
(
self
.
botframe
,
text
=
"Filter"
,
command
=
self
.
filter_command
)
self
.
filter_button
.
pack
(
side
=
LEFT
,
expand
=
YES
)
self
.
cancel_button
=
Button
(
self
.
botframe
,
text
=
"Cancel"
,
command
=
self
.
cancel_command
)
self
.
cancel_button
.
pack
(
side
=
RIGHT
)
def
go
(
self
,
directory
=
os
.
curdir
,
pattern
=
"*"
,
default
=
""
):
self
.
directory
=
directory
self
.
set_filter
(
directory
,
pattern
)
self
.
set_selection
(
default
)
self
.
selection
.
focus_set
()
self
.
filter_command
()
self
.
top
.
grab_set
()
try
:
self
.
master
.
mainloop
()
except
SystemExit
,
how
:
self
.
top
.
destroy
()
return
how
def
dirs_double_event
(
self
,
event
):
## self.dirs_select_event(event)
self
.
filter_command
()
def
dirs_select_event
(
self
,
event
):
dir
,
pat
=
self
.
get_filter
()
subdir
=
self
.
dirs
.
get
(
ANCHOR
)
dir
=
os
.
path
.
normpath
(
os
.
path
.
join
(
self
.
directory
,
subdir
))
self
.
set_filter
(
dir
,
pat
)
def
files_double_event
(
self
,
event
):
## self.files_select_event(event)
## self.master.update_idletasks()
self
.
ok_command
()
def
files_select_event
(
self
,
event
):
file
=
self
.
files
.
get
(
ANCHOR
)
self
.
set_selection
(
file
)
def
ok_event
(
self
,
event
):
self
.
ok_command
()
def
ok_command
(
self
):
raise
SystemExit
,
self
.
selection
.
get
()
def
filter_command
(
self
,
event
=
None
):
dir
,
pat
=
self
.
get_filter
()
try
:
names
=
os
.
listdir
(
dir
)
except
os
.
error
:
self
.
master
.
bell
()
return
self
.
directory
=
dir
self
.
set_filter
(
dir
,
pat
)
names
.
sort
()
subdirs
=
[
os
.
pardir
]
matchingfiles
=
[]
for
name
in
names
:
fullname
=
os
.
path
.
join
(
dir
,
name
)
if
os
.
path
.
isdir
(
fullname
):
subdirs
.
append
(
name
)
elif
fnmatch
.
fnmatch
(
name
,
pat
):
matchingfiles
.
append
(
name
)
self
.
dirs
.
delete
(
0
,
END
)
for
name
in
subdirs
:
self
.
dirs
.
insert
(
END
,
name
)
self
.
files
.
delete
(
0
,
END
)
for
name
in
matchingfiles
:
self
.
files
.
insert
(
END
,
name
)
def
get_filter
(
self
):
filter
=
self
.
filter
.
get
()
if
filter
[
-
1
:]
==
os
.
sep
:
filter
=
filter
+
"*"
return
os
.
path
.
split
(
filter
)
def
cancel_command
(
self
):
raise
SystemExit
,
None
def
set_filter
(
self
,
dir
,
pat
):
self
.
filter
.
delete
(
0
,
END
)
self
.
filter
.
insert
(
END
,
os
.
path
.
join
(
dir
or
os
.
curdir
,
pat
or
"*"
))
def
set_selection
(
self
,
file
):
self
.
selection
.
delete
(
0
,
END
)
self
.
selection
.
insert
(
END
,
os
.
path
.
join
(
self
.
directory
,
file
))
class
LoadFileDialog
(
FileDialog
):
"""File selection dialog which checks that the file exists."""
title
=
"Load File Selection Dialog"
def
ok_command
(
self
):
file
=
self
.
selection
.
get
()
if
not
os
.
path
.
isfile
(
file
):
self
.
master
.
bell
()
else
:
raise
SystemExit
,
file
class
SaveFileDialog
(
FileDialog
):
"""File selection dialog which checks that the file may be created."""
title
=
"Save File Selection Dialog"
def
ok_command
(
self
):
file
=
self
.
selection
.
get
()
if
os
.
path
.
exists
(
file
):
if
os
.
path
.
isdir
(
file
):
self
.
master
.
bell
()
return
d
=
Dialog
(
self
.
master
,
title
=
"Overwrite Existing File Question"
,
text
=
"Overwrite existing file
%
s?"
%
`file`
,
bitmap
=
'questhead'
,
default
=
0
,
strings
=
(
"Yes"
,
"Cancel"
))
if
d
.
num
!=
0
:
file
=
None
else
:
head
,
tail
=
os
.
path
.
split
(
file
)
if
not
os
.
path
.
isdir
(
head
):
self
.
master
.
bell
()
return
raise
SystemExit
,
file
def
test
():
"""Simple test program."""
root
=
Tk
()
root
.
withdraw
()
fd
=
LoadFileDialog
(
root
)
loadfile
=
fd
.
go
()
fd
=
SaveFileDialog
(
root
)
savefile
=
fd
.
go
()
print
loadfile
,
savefile
if
__name__
==
'__main__'
:
test
()
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