Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 9, 2015 19:46:12

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

terabayt
P.S. а вот если кто-то зарегистрирует на форуме 4kpt_IV (и 4kpt_IIII)? прост очень интересно )

Вы знаете греческий?
Вот будет 4kpt_четыре_по_гречески

terabayt
видел и для меня эт очень запутано
я не считаю это хорошим выходом

Такой подход просто существует. Он не считается плохим тоном и уж точно лучше global Кстати. Иногда, когда работаешь с алхимией, удобно просто передать query-обджект на какую-нибудь функцию - хелпер (которая бы его там тотально изменила или не изменила - в зависимости от ситуации) и возвращать ничего не надо. Т.е. код упрощается за счет отсутствие анализа ответа. Просто .commit() результат после отработавшей функции и все.

P.S. А как вообще без active догадались?



Офлайн

#2 Янв. 9, 2015 22:07:40

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

Paranoia_Agent
Теперь вопросики:
- Как избавиться от global?
- Как убрать изменение размера окна при нажатии на кнопки? Нужно установить размер окна по максимальному из фреймов, размеры которых точно сказать невозможно.
- Как получить цвет стандартного фона? Есть такая функция в tkinter color, но я что-то её забыл.
Вспомнил третий вопросик:
root.cget('bg')
Первый, вроде, решили, второй в подвешенном состоянии.

Офлайн

#3 Янв. 9, 2015 22:49:13

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

Т.е как это нельзя заранее определить.
Количество виджетов не известно?

Офлайн

#4 Янв. 9, 2015 22:58:39

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

4kpt_III
Ну можно же при запуске программы прогнать по всем вкладкам и сделать так, чтобы размер окна мог увеличиваться, а уменьшаться не мог?

Офлайн

#5 Янв. 9, 2015 23:02:16

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

Можно, конечно, фиксировать размеры окна. Но я все же не пойму концепцию? Количество виджетов может меняться на вкладке?

P.S. Если честно, то я такого никогда в жизни не делал и делать бы не стал

Офлайн

#6 Янв. 9, 2015 23:05:57

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

4kpt_III
Нет, количество не меняется, но могут быть разные шрифты на надписях и, например, на линуксе размер такого виджета будет немного другой (шрифты разные), а когда дергается размер всего окна - это раздражает.
Даже вот на приведенном примере, известно кол-во виджетов, как сделать, чтобы хотя бы он не скакал?
Точно также как на ttk с notebook, там же этот фрейм равен по размеру максимальному элементу.

Отредактировано Paranoia_Agent (Янв. 9, 2015 23:11:48)

Офлайн

#7 Янв. 9, 2015 23:24:28

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

Что делается для решения таких проблем:
1. Рамка фиксируется.
2. Упаковывать виджеты методами pack или grid.
3. Назначаются общие для систем шрифты.
4. Размеры виджетов также фиксируются или берутся в %.

P.S. Можно, конечно, пересчитывать, но это по-моему оверхед еще тот

P.S.S. Количество виджетов должно быть всегда фиксированным. Иначе можно забыть о таком понятии как “дизайн пользовательского интерфейса” + нужно не забывать правило “7 плюс минус 2”.

Офлайн

#8 Янв. 9, 2015 23:39:55

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

Ну, в принципе, можно ограничиться этим:

root.minsize(600,400)

P.S. Когда-то давно у меня была программа, со шрифтами по дефолту и с упаковщиком pack. Я решил провести эксперимент и подогнал scroolbar place`ом. Результат меня поразил: ни на одном из 8 компьютеров скруллбар правильно не встал

Офлайн

#9 Янв. 10, 2015 00:08:10

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

Paranoia_Agent
P.S. Когда-то давно у меня была программа, со шрифтами по дефолту и с упаковщиком pack. Я решил провести эксперимент и подогнал scroolbar place`ом. Результат меня поразил: ни на одном из 8 компьютеров скруллбар правильно не встал

Можно подогнать. Но сложнее и не имеет смысла. Дурное дело - не хитрое

Отредактировано 4kpt_III (Янв. 10, 2015 00:08:26)

Офлайн

#10 Янв. 10, 2015 00:18:55

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Tkinter Button + lambda-функция

4kpt_III
я имел ввиду, что подогнал, но на других компах было не то что нужно

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version