Найти - Пользователи
Полная версия: Tkinter Button + lambda-функция
Начало » GUI » Tkinter Button + lambda-функция
1 2 3
4kpt_III
terabayt
P.S. а вот если кто-то зарегистрирует на форуме 4kpt_IV (и 4kpt_IIII)? прост очень интересно )

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

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

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

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



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

P.S. Если честно, то я такого никогда в жизни не делал и делать бы не стал
Paranoia_Agent
4kpt_III
Нет, количество не меняется, но могут быть разные шрифты на надписях и, например, на линуксе размер такого виджета будет немного другой (шрифты разные), а когда дергается размер всего окна - это раздражает.
Даже вот на приведенном примере, известно кол-во виджетов, как сделать, чтобы хотя бы он не скакал?
Точно также как на ttk с notebook, там же этот фрейм равен по размеру максимальному элементу.
4kpt_III
Что делается для решения таких проблем:
1. Рамка фиксируется.
2. Упаковывать виджеты методами pack или grid.
3. Назначаются общие для систем шрифты.
4. Размеры виджетов также фиксируются или берутся в %.

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

P.S.S. Количество виджетов должно быть всегда фиксированным. Иначе можно забыть о таком понятии как “дизайн пользовательского интерфейса” + нужно не забывать правило “7 плюс минус 2”.
Paranoia_Agent
Ну, в принципе, можно ограничиться этим:
root.minsize(600,400)

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

Можно подогнать. Но сложнее и не имеет смысла. Дурное дело - не хитрое
Paranoia_Agent
4kpt_III
я имел ввиду, что подогнал, но на других компах было не то что нужно
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