FedeX
Сен. 5, 2007 19:57:51
Делаю так:
def ChooseOutDir(event):
dn = tkFileDialog.askdirectory()
outdirentry.insert(0,dn)
outdirbtn.bind(“<Button>”,ChooseOutDir)
Тоесть outdirbtn - это кнопка, при нажатии которой вызывается диалог выбора папки из модуля tkFileDialog и название выбранной пользователем папки вставляется в строку ввода outdirentry.
А проблема в том, что после исчезновения диалога выбора папки, кнопка, которая вызвала это событие, остаётся нажатой. Некрасиво ж ведь!!! И чего я не делаю никак не удаётся её отжать.
Уже спрашивал на одном форуме, но там молчат. Потихоньку начинаю догадываться, что выбор Tkinter как GUI был не лучшим ;) Всё как-то кривовато и не по-людски тут. Но переделывать, что уже сделал немного лень…
bialix
Сен. 6, 2007 09:29:07
потому что не по-людски программируете – поэтому и получаете фигню.
при создании кнопки (или позже) задаете в параметре command функцию, которая должна вызываться при нажатии на кнопку.
А событие <Button> – это вообще-то просто абстрактный щелчок левой клавишей мыши.
Так что ваш пример из серии: как запутать себя и Tcl/Tk.
RTFM
balu
Сен. 6, 2007 10:52:17
FedeX
Всё как-то кривовато и не по-людски тут
Tcl/Tk на самом деле очень неплохой выбор. А как он может выглядеть смотрите тут -
http://img468.imageshack.us/img468/6769/kaabh0.png И это питон.
balu
Сен. 6, 2007 11:54:20
Tile+Tileqt. Однако идеология разработки мало чем отличается.
FedeX
Сен. 6, 2007 18:33:29
bialixСпасибо! Скорее-всего это оно. Вечером попробую.
bialix
потому что не по-людски программируете
Это меня так одна книжка научила. Некоего Ивана Вана Ланинхема (“Освой Питон самостоятельно за 24 часа”) ;)
А сам я на FreePascal-е обычно кодю.
balu
Tcl/Tk на самом деле очень неплохой выбор. А как он может выглядеть смотрите тут
Мне в принципе не слишком важен вид. Главное чтоб легко и быстро ГЮИ лепилось. А Tkinter немного (кхм…) не похож всмысле обработки событий и присваивания свойств на те библиотеки с которыми я уже работал на FreePascal…
balu
Сен. 7, 2007 10:02:37
FedeX
А Tkinter немного (кхм…) не похож всмысле обработки событий и присваивания свойств на те библиотеки с которыми я уже работал на FreePascal…
Тогда вам ГТК или КуТе, хотя идеологии программирования гуйни там похожи. А книга ван Лейнинхема далеко не лучшая книга как по питону, так и по программировании гуйни на нем. Тем более, что используя КуТе или ГТК у вас появляется возможность лепить гуйню в графически. А Тикль хорошо проявляет себя на легких гуи и тогда, когда гуи должно генерироваться автоматически.
hea007
Май 7, 2011 08:03:13
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()
Вот так работает нормально, но с правой кнопкой мыши.
<Button-1> - остаётся нажатой.
В чем проблема???
Griffon
Май 8, 2011 21:46:47
Вообще Тк очень простой GUI. Намного проще того же QT, или wx. Это если ручками делать конечно. Плюс ttk рядом. Но с документацией для ttk проблема. Есть, но не всё гладко.