Различия между версиями 4 и 5
Версия 4 от 2021-03-04 10:23:23
Размер: 2642
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2021-03-06 15:03:15
Размер: 4519
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 52: Строка 52:
События и их обработчики:
 * Стандартные действия (`command=`)
 * [[tkinter:events|Стандартные события]]
  * Регистрация обработчиков
  * Обработчики и частичные вычисления :)
  Tk: общие переменные
 * Например, [[tkinter:optionmenu]] и [[tkinter:label]]

Ввод [[tkinter:entry]]:
 * Поле ввода как текстовый редактор
  * не нравится мудрить, вот вам !StringVar

Другие виджеты
## События и их обработчики:
## * Стандартные действия (`command=`)
## * [[tkinter:events|Стандартные события]]
## * Регистрация обработчиков
## * Обработчики и частичные вычисления :)
##
##
Tk: общие переменные
## * Например, [[tkinter:optionmenu]] и [[tkinter:label]]
##
##
Ввод [[tkinter:entry]]:
## * Поле ввода как текстовый редактор
## * не нравится мудрить, вот вам !StringVar
##
##
Другие виджеты
##
Строка 68: Строка 68:
'''TODO'''
(наконец-то)
 * На tkinter
 1.#0 Прочитать
  * про [[tkinter:grid]]
   * в частности, выяснить, как узнать положение виджета в сетке
  * про [[tkinter:tkMessageBox|messagebox]]
   * в тексте — описание для Python2, выяснить, в чём отличие от Python3
   * Спойлер: /* вместо модуля `tkMessageBox` теперь подмодуль `tkinter.messagebox` */
 1. Написать приложение для примитивной [[RW:Игра_в_15|игры в 15]]
  * Минимальное приложение
   * 17 кнопок (15 числовых + `New` + `Exit`)
   * Изменение размера окна приложения должно изменять размер числовых кнопок
   * Нажатие на `New` расставляет числовые кнопки в случайном порядке
   * Нажатие на `Exit` останавливает приложение
   * Нажатие на числовую кнопку, находящуюся рядом со свободным местом, перемещает эту кнопку на свободное место
   * Нажатие на другие числовые кнопки игнорируется
   * Когда все кнопки встают на свои места, выводится сообщение и игра хапускается по новой
  * Примерно так ☺:
   {{attachment:game15.gif}}
  * <!> Дополнительно
   * Не использовать неразрешимые расстановки
   * Сделать все числовые кнопки одинакового размера (обратите внимание на то, что иногда меняется размер всего окна)

Ручное редактирование при слиянии; использование tkinter

Ещё про работу с историей

Раздельное добавление ханков

  • Откат истории:
    • Команды git-resetgit reset --hard)

  • git add -p

  • git commit --interactive (ALT: пакет perl-Git)

Ветка/сторонний репозиторий как хранилище отдельных коммитов

Немного о формате

  • diff и patch

    • (в частности, diff -u)

    • понятие контекста
      • fuzzy контекст
    • BTW, [g]vimdiff

Патчи и Git:

Интерферирующие коммиты

Немного о формате:

Ситуация:

  • Мой коммит, их коммит, общий предок
  • ⇒ diff-3 результат:
    • всё, что можно, применено
    • всё, что отъехало, оформлено как diff3

И вот git mergetool до посинения

  • Адище тут: kdiff3, [g]vimdiff, diffuse, тысячи их

Снова Tkinter

(сколько успеем) Повторение:

  • вложенность виджетов
    • основное окно по умолчанию
  • ручное раскладывание объектов
  • mainloop

Понятие геометрии (grid, pack, place); grid

  • строки и столбцы
  • sticky
  • columnconfigure / rowconfigure и эластичность (weight)

Д/З

  1. Прочитать
    • про grid

      • в частности, выяснить, как узнать положение виджета в сетке
    • про messagebox

      • в тексте — описание для Python2, выяснить, в чём отличие от Python3
      • Спойлер:

  2. Написать приложение для примитивной игры в 15

    • Минимальное приложение
      • 17 кнопок (15 числовых + New + Exit)

      • Изменение размера окна приложения должно изменять размер числовых кнопок
      • Нажатие на New расставляет числовые кнопки в случайном порядке

      • Нажатие на Exit останавливает приложение

      • Нажатие на числовую кнопку, находящуюся рядом со свободным местом, перемещает эту кнопку на свободное место
      • Нажатие на другие числовые кнопки игнорируется
      • Когда все кнопки встают на свои места, выводится сообщение и игра хапускается по новой
    • Примерно так ☺:
      • game15.gif

    • <!> Дополнительно

      • Не использовать неразрешимые расстановки
      • Сделать все числовые кнопки одинакового размера (обратите внимание на то, что иногда меняется размер всего окна)

LecturesCMC/PythonDevelopment2021/03_ThreeWayAndTkinter (последним исправлял пользователь FrBrGeorge 2021-03-15 20:46:37)