Найти - Пользователи
Полная версия: Tkinter - отжать кнопку
Начало » GUI » Tkinter - отжать кнопку
1 2 3
FedeX
Делаю так:
def ChooseOutDir(event):
dn = tkFileDialog.askdirectory()
outdirentry.insert(0,dn)

outdirbtn.bind(“<Button>”,ChooseOutDir)
Тоесть outdirbtn - это кнопка, при нажатии которой вызывается диалог выбора папки из модуля tkFileDialog и название выбранной пользователем папки вставляется в строку ввода outdirentry.
А проблема в том, что после исчезновения диалога выбора папки, кнопка, которая вызвала это событие, остаётся нажатой. Некрасиво ж ведь!!! И чего я не делаю никак не удаётся её отжать.
Уже спрашивал на одном форуме, но там молчат. Потихоньку начинаю догадываться, что выбор Tkinter как GUI был не лучшим ;) Всё как-то кривовато и не по-людски тут. Но переделывать, что уже сделал немного лень…
bialix
потому что не по-людски программируете – поэтому и получаете фигню.
при создании кнопки (или позже) задаете в параметре command функцию, которая должна вызываться при нажатии на кнопку.
А событие <Button> – это вообще-то просто абстрактный щелчок левой клавишей мыши.

Так что ваш пример из серии: как запутать себя и Tcl/Tk.

RTFM
balu
FedeX
Всё как-то кривовато и не по-людски тут
Tcl/Tk на самом деле очень неплохой выбор. А как он может выглядеть смотрите тут - http://img468.imageshack.us/img468/6769/kaabh0.png И это питон.
astoon
Извиняюсь за оффтоп:
balu
А как он может выглядеть смотрите тут - http://img468.imageshack.us/img468/6769/kaabh0.png
balu, это Tile или сам Tk ?
balu
Tile+Tileqt. Однако идеология разработки мало чем отличается.
FedeX
bialix
Спасибо! Скорее-всего это оно. Вечером попробую.
bialix
потому что не по-людски программируете
Это меня так одна книжка научила. Некоего Ивана Вана Ланинхема (“Освой Питон самостоятельно за 24 часа”) ;)
А сам я на FreePascal-е обычно кодю.
balu
Tcl/Tk на самом деле очень неплохой выбор. А как он может выглядеть смотрите тут
Мне в принципе не слишком важен вид. Главное чтоб легко и быстро ГЮИ лепилось. А Tkinter немного (кхм…) не похож всмысле обработки событий и присваивания свойств на те библиотеки с которыми я уже работал на FreePascal…
balu
FedeX
А Tkinter немного (кхм…) не похож всмысле обработки событий и присваивания свойств на те библиотеки с которыми я уже работал на FreePascal…
Тогда вам ГТК или КуТе, хотя идеологии программирования гуйни там похожи. А книга ван Лейнинхема далеко не лучшая книга как по питону, так и по программировании гуйни на нем. Тем более, что используя КуТе или ГТК у вас появляется возможность лепить гуйню в графически. А Тикль хорошо проявляет себя на легких гуи и тогда, когда гуи должно генерироваться автоматически.
hea007
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> - остаётся нажатой.
В чем проблема???
kublo
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()
Griffon
Вообще Тк очень простой GUI. Намного проще того же QT, или wx. Это если ручками делать конечно. Плюс ttk рядом. Но с документацией для ttk проблема. Есть, но не всё гладко.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB