Форум сайта python.su
Делаю так:
def ChooseOutDir(event):
dn = tkFileDialog.askdirectory()
outdirentry.insert(0,dn)
outdirbtn.bind(“<Button>”,ChooseOutDir)
Тоесть outdirbtn - это кнопка, при нажатии которой вызывается диалог выбора папки из модуля tkFileDialog и название выбранной пользователем папки вставляется в строку ввода outdirentry.
А проблема в том, что после исчезновения диалога выбора папки, кнопка, которая вызвала это событие, остаётся нажатой. Некрасиво ж ведь!!! И чего я не делаю никак не удаётся её отжать.
Уже спрашивал на одном форуме, но там молчат. Потихоньку начинаю догадываться, что выбор Tkinter как GUI был не лучшим ;) Всё как-то кривовато и не по-людски тут. Но переделывать, что уже сделал немного лень…
Офлайн
потому что не по-людски программируете – поэтому и получаете фигню.
при создании кнопки (или позже) задаете в параметре command функцию, которая должна вызываться при нажатии на кнопку.
А событие <Button> – это вообще-то просто абстрактный щелчок левой клавишей мыши.
Так что ваш пример из серии: как запутать себя и Tcl/Tk.
RTFM
Офлайн
FedeXTcl/Tk на самом деле очень неплохой выбор. А как он может выглядеть смотрите тут - http://img468.imageshack.us/img468/6769/kaabh0.png И это питон.
Всё как-то кривовато и не по-людски тут
Офлайн
Извиняюсь за оффтоп:
balubalu, это Tile или сам Tk ?
А как он может выглядеть смотрите тут - http://img468.imageshack.us/img468/6769/kaabh0.png
Офлайн
Tile+Tileqt. Однако идеология разработки мало чем отличается.
Офлайн
bialix
Спасибо! Скорее-всего это оно. Вечером попробую.
bialixЭто меня так одна книжка научила. Некоего Ивана Вана Ланинхема (“Освой Питон самостоятельно за 24 часа”) ;)
потому что не по-людски программируете
baluМне в принципе не слишком важен вид. Главное чтоб легко и быстро ГЮИ лепилось. А Tkinter немного (кхм…) не похож всмысле обработки событий и присваивания свойств на те библиотеки с которыми я уже работал на FreePascal…
Tcl/Tk на самом деле очень неплохой выбор. А как он может выглядеть смотрите тут
Офлайн
FedeXТогда вам ГТК или КуТе, хотя идеологии программирования гуйни там похожи. А книга ван Лейнинхема далеко не лучшая книга как по питону, так и по программировании гуйни на нем. Тем более, что используя КуТе или ГТК у вас появляется возможность лепить гуйню в графически. А Тикль хорошо проявляет себя на легких гуи и тогда, когда гуи должно генерироваться автоматически.
А Tkinter немного (кхм…) не похож всмысле обработки событий и присваивания свойств на те библиотеки с которыми я уже работал на FreePascal…
Отредактировано (Сен. 7, 2007 10:03:19)
Офлайн
from Tkinter import *
import tkFileDialog
def ChooseOutDir(event):
dn = tkFileDialog.askdirectory()
statusbar.config(text = dn)
root=Tk()
outdirbtn=Button(root, text="Open File Dialog")
outdirbtn.bind("<Button-3>", ChooseOutDir)
outdirbtn.pack()
statusbar = Label(root, text="", bd=1, relief=SUNKEN, anchor=W)
statusbar.pack(side=BOTTOM, fill=X)
root.mainloop()
Офлайн
from Tkinter import *
import tkFileDialog
def ChooseOutDir():
dn = tkFileDialog.askdirectory()
statusbar.config(text = dn)
root = Tk()
Button(text="Open File Dialog", command=ChooseOutDir).pack()
statusbar = Label(text="", bd=1, relief=SUNKEN, anchor=W)
statusbar.pack(side=BOTTOM, fill=X)
root.mainloop()
Офлайн
Вообще Тк очень простой GUI. Намного проще того же QT, или wx. Это если ручками делать конечно. Плюс ttk рядом. Но с документацией для ttk проблема. Есть, но не всё гладко.
Офлайн