Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 23, 2007 13:03:06

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

Все ники заняты
bialix
по поводу default - если установить это свойство в DISABLED, то кнопка будет с серым текстом и не реагировать на клик мышкой
А вот и нет :(
# -*- coding: cp1251 -*-
from Tkinter import *
import sys

def die():
sys.exit()

root = Tk()
button = Button(root, text = u"Кнопка", command = die)
button["default"] = DISABLED
button.pack()
root.mainloop()
Кнопка прекрасно работает…
Кстати, в доке говорится о трёх значениях: NORMAL, ACTIVE и DISABLED. Что это означает, не ясно…
В Tkinter так делать нельзя:


button = DISABLED


Нужно использовать метод config



Офлайн

#2 Июнь 23, 2007 13:03:56

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

bialix, спасибо, с твоей второй ссылки я и начал (см. первый пост в этой теме) :). Только дока местами куцая :).



Офлайн

#3 Июнь 23, 2007 13:05:12

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

впрочем, судя по книге есть еще свойство state, которое как я помню точно управляет состоянием кнопки.



Офлайн

#4 Июнь 23, 2007 13:05:43

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

bialix
В Tkinter так делать нельзя:
Это почему? Во многих местах в инете именно так и советуют делать (работать с виджетами, как со словарями).



Офлайн

#5 Июнь 23, 2007 13:06:43

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

Все ники заняты
bialix, спасибо, с твоей второй ссылки я и начал (см. первый пост в этой теме) :). Только дока местами куцая :).
Куцая – не то слово. Поэтому лучше иметь всегда под рукой tkinter.pdf. Но он тоже далек от полноты.

Лучше всего разжевано про Tkinter у Лутца.



Офлайн

#6 Июнь 23, 2007 13:09:54

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

Все ники заняты
bialix
В Tkinter так делать нельзя:
Это почему? Во многих местах в инете именно так и советуют делать (работать с виджетами, как со словарями).
Был неправ, спутал с чем-то похожим. Вобще Tkiner не самая красивая библиотека, но примитивная и на первых порах работать с ней просто.



Офлайн

#7 Июнь 23, 2007 13:13:01

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

bialix
Нужно использовать метод config
button.config(default = DISABLED)
Те же яйца, вид сбоку :).



Офлайн

#8 Июнь 23, 2007 13:16:43

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

Все ники заняты
bialix
Нужно использовать метод config
button.config(default = DISABLED)
Те же яйца, вид сбоку :).
Попробуй state=DISABLED



Офлайн

#9 Июнь 23, 2007 15:42:09

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

bialix
Попробуй state=DISABLED
Это, конечно, работает. Однако, мне не ясно назначение свойства “default”, собственно в этом и вопрос. Вопрос конечно не жизни и смерти :), но когда сталкиваешься с такими непонятками, это неприятно.
В доке сказано:
If set, the button is a default button. Tk will indicate this by drawing a platform specific indicator (usually an extra border). NOTE: The syntax has changed in 8.0b2!!!
Белиберда какая-то…
В другой доке:
If set, the button is a default button. Tkinter will indicate this by drawing a platform specific indicator (usually an extra border). The default is DISABLED (no default behavior). (default/Default)
В третьей доке:
NORMAL is the default; use DISABLED if the button is to be initially disabled
(grayed out, unresponsive to mouse clicks).
Дефолтный дефолт дефолтом погоняет…



Офлайн

#10 Июнь 23, 2007 17:23:41

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter, картинки на кнопках

Все ники заняты
bialix
Попробуй state=DISABLED
Это, конечно, работает. Однако, мне не ясно назначение свойства “default”, собственно в этом и вопрос. Вопрос конечно не жизни и смерти :), но когда сталкиваешься с такими непонятками, это неприятно.
В доке сказано:
If set, the button is a default button. Tk will indicate this by drawing a platform specific indicator (usually an extra border). NOTE: The syntax has changed in 8.0b2!!!
Белиберда какая-то…
В другой доке:
If set, the button is a default button. Tkinter will indicate this by drawing a platform specific indicator (usually an extra border). The default is DISABLED (no default behavior). (default/Default)
В третьей доке:
NORMAL is the default; use DISABLED if the button is to be initially disabled
(grayed out, unresponsive to mouse clicks).
Дефолтный дефолт дефолтом погоняет…
В Win32 API default – это состояние кнопки, которая нажимается по умолчанию если в диалоге нажать Enter. Кажется так.
Вот пример с 3мя допустимыми значениями для default:


from Tkinter import *

root = Tk()

Button(root, text='ACTIVE', default=ACTIVE).pack()
Button(root, text='NORMAL', default=NORMAL).pack()
Button(root, text='DISABLED', default=DISABLED).pack()

root.mainloop()

1я кнопка имеет дополнительную черную рамку. Остальные 2 ничем не отличаются на винде.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version