tkinter.filedialog.askdirectory
의 대안으로 나는 tix.DirSelectDialog
을 우연히 만났습니다.
슬프게도 나는 그것을 사용하는 방법을 모르겠다. 나는 __init__(self, master)
방법이 있다는 것을 알았지 만, 나는 특히 "자기"가 무엇인지 알지 못합니다.tix.DirSelectDialog를 사용하는 방법?
내 목표는 기본 창에서 버튼을 눌러 디렉토리 선택 대화 상자를 시작하고 나중에 사용할 수 있도록 변수를 선택한 디렉토리에 저장하는 것입니다. 파이썬 3.3에 대한이 최소화 된 예제를 제안합니다 :
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from tkinter import *
import tkinter.tix as tix
root = Tk()
def pathSelect():
d = tix.DirSelectDialog.__init__(self=???, master=root)
if d != "":
print(d)
button = Button(root, text="dialog", command=pathSelect)
button.pack()
root.mainloop()
이것이 작동한다면 충분할 것입니까?
그물에있는이 화제에 관하여 다량이 없다. 내 참조의 두 가지이다 :
http://sourcecodebrowser.com/python3.2/3.2.3~rc2/classtkinter_1_1tix_1_1_dir_select_dialog.html#ae545b097538938871e9576b83fc664be
http://epydoc.sourceforge.net/stdlib/Tix.DirSelectDialog-class.html
그들은 항상 구문을 반복하고 있지만 그 사용을 할 수 아니에요. 더 많은 프로그래밍 기술을 가진 사람이있을 수 있습니까? 3 시간 동안 실패한 연구와 실험을 마치고 나면 작은 예제에 매우 만족할 것입니다.
대단히 감사드립니다.
는 편집 :
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python\lib\tkinter\__init__.py", line 1442, in __call__
return self.func(*args)
File "dirdialog.py", line 10, in pathSelect
d = tix.DirSelectDialog(master=root)
File "C:\Program Files\Python\lib\tkinter\tix.py", line 762, in __init__
['options'], cnf, kw)
File "C:\Program Files\Python\lib\tkinter\tix.py", line 322, in __init__
self.tk.call(widgetName, self._w, *extra)
_tkinter.TclError: invalid command name "tixDirSelectDialog"
이 올 것 같다 : 나는 놀랍게도이 오류가 발생했습니다
d = tix.DirSelectDialog(master=root)
:
수정 프로그램을 적용한 후는 furas의 대답에 제안 tix 내에서,하지만 라이브러리에 오류가있을 수 없습니다 r ight? 답변을 얻은 사람이 있습니까?
솔루션 (furas 덕분에) : 항상
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from tkinter import *
import tkinter.tix as tix
root = tix.Tk()
def print_selected(args):
print('selected dir:', args)
def pathSelect():
d = tix.DirSelectDialog(master=root, command=print_selected)
d.popup()
button = Button(root, text="dialog", command=pathSelect)
button.pack()
root.mainloop()
감사합니다. 이것은 나 같은 어리석은 실수였다 ... 나는 분명히 그것을 배울 것이다. 이 줄을 수정하고 멋진 대화 상자가 나타나기를 기대했지만 대신 분당 의문에 추가 할 오류가 있습니다. 아이디어가 있으십니까? – S818
'tkinter'는'tcl/tk' 언어 (파이썬과 함께 설치됨)에서만 래퍼입니다. 그리고'tkinter.tix'는'tcl/tk'에 대한'tix' 확장자를 래퍼합니다.하지만 아마도 여러분이 직접 설치해야합니다. – furas
해결책을 찾았습니다 - 아마도 tkinter.Tk() 대신에'tix.Tk()'를 사용해야합니다 - 인터넷에서 파이썬 2의 예제를 보십시요 : [Using Tix with Python] (http : // tix .sourceforge.net/docs/html/TixUser/subsection3_2_2.html) – furas