Тарифы Услуги Сим-карты

Графический интерфейс Windows и его элементы. Основные элементы графического интерфейса Ос windows графический интерфейс и основы работы

(ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ)
  • Разработка приложений с графическим интерфейсом
    Основы работы с модулем tkinter Язык Python позволяет создавать приложения с графическим интерфейсом, для этого применяются различные графические библиотеки1. Остановимся на рассмотрении стандартной графической библиотеки tkinter " Подробнее см.: https://wiki.python.org/moin/GuiProgramming. ...
    (ТЕХНОЛОГИИ И МЕТОДЫ ПРОГРАММИРОВАНИЯ)
  • Пользовательский интерфейс приложения MS PowerPoint 2010
    Запуск приложения MS PowerPoint 2010 осуществляется из Главного меню MS Office, ярлыка приложения на Рабочем столе или из программы Проводник (при наличии готовой презентации на компьютере). Программный продукт PowerPoint 2010 создает файл презентаций, который имеет расширение имени.ppt. Приложение...
    (Информатика для экономистов)
  • Описание графического интерфейса ОС Windows
    Графический интерфейс пользователя реализует и поддерживает операционная система. Основным понятием GUI является "окно" (window), схема которого показана на рис. 8.2. На экране окна представляют собой некоторые участки (обычно прямоугольные), в которых выполняется ввод и вывод информации и...
  • Реализация графического интерфейса в.Net
    В платформе.NET для реализации графического интерфейса используются разные технологии, такие как Windows Forms и Windows Presentation Foundation (WPF). В пособии рассматривается только технология Windows Forms. Данная технология включает множество типов (классы, структуры, перечисления, делегаты), которые...
    (Объектно-ориентированное программирование)
  • Пример простой программы с графическим интерфейсом
    Обычное windows-приложение содержит несколько форм , которые создаются с помощью объектов класса Form. Данный класс также является ЭУ и наследуется от базового класса Control. Одни формы приложения открываются в процессе работы, другие закрываются. В каждый текущий момент на экране может быть открыта...
    (Объектно-ориентированное программирование)
  • После загрузки Windows на экране появляется электронный Рабочий стол , на котором размещаются графические объекты - пиктограммы (значки) папок и файлов, ярлыки и др. Значки файлов документов заменяют расширение файла (в подписи значка присутствует только имя), и поскольку у каждой программы, установленной в Windows, есть собственный оригинальный значок, то он присутствует в значке документа, созданного соответствующей программой.

    Ярлык является ссылкой на объект (файл или папку), находящийся в другом месте и его значок отличается от значка объекта только наличием черной стрелки в левом нижнем углу. Любые действия, произведенные над ярлыком (копирование, переименование, удаление и т.п.), не влияют на связанный с ним объект. Открыть ярлык - значит открыть связанный с ним объект. Просмотрев свойства ярлыка, всегда можно узнать, где находится объект, с которым этот ярлык связан. Наиболее часто ярлыки используются для запуска приложений.

    По своей сути Рабочий стол - это папка с дисковым адресом C:\DocumentsandSettings\ «имя пользователя»\Рабочий стол, в которой находятся файлы, папки и ярлыки, изображенные на нем. Если же рассмотреть место Рабочего стола в иерархической структуре «дерева папок», то он является верхним уровнем структуры (рис. 3.1).

    Рис.3.1. Рабочий стол в «дереве папок»

    Набор объектов на Рабочем столе зависит от настройки компьютера. Обычно на нем присутствуют значки следующих стандартных (системных) папок:

    «Мой компьютер» - папка, открывающая доступ ко всем ресурсам компьютера. Из этой папки нельзя удалить ни единого значка.

    «Сетевое окружение» - папка, открывающая доступ к имеющимся сетевым ресурсам. Если компьютер подключен к локальной сети, то из этой папки можно осуществить доступ к любому компьютеру сети. В данную папку также можно добавлять узлы Internet.

    «Корзина» - папка, в которую попадают все объекты, удаленные с жестких дисков. Объем дискового пространства, который занимает «Корзина», задается через ее свойства. Очистить корзину можно с помощью соответствующей команды из ее Контекстного меню.

    Список операций, которые можно применить к объекту Рабочего стола, зависит от его вида и отображается в контекстном меню объекта, вызываемом правой кнопкой мыши.

    Основным объектом графического интерфейса Windows является окно - обрамленная прямоугольная область на экране монитора, в котором отображаются содержимое папки, приложение, документ или сообщение.

    Окна имеют набор элементов управления, с помощью которых осуществляется работа в окнах. Окно можно развернуть на весь экран или свернуть в пиктограмму, можно изменять его размеры и перемещать по Рабочему столу. В зависимости от того, что отображается в окне (содержимое папки, приложение и т.п.), его элементы управления различны. Можно привести следующие примеры элементов окна:

      строка заголовка с кнопкой системного меню и кнопками типовых операций;

      управляющее (основное меню), пункты которого открывают ниспадающие меню, содержащие группы команд, объединенных по функциональному признаку;

      панели инструментов;

      строка состояния, содержащая информацию о режимах работы приложения.

      вертикальная и горизонтальная полосы (линейки) прокрутки, служащие для просмотра содержимого окна по вертикали и горизонтали;

    В «диалоговых» окнах также присутствуют: вкладки, командные кнопки, кнопки выбора («переключатели» и «флажки»), поля списка и др., а в окне папки - панели «Адресная строка» и «Ссылки», и кнопки переходов.

    Пользователь может настраивать вид окна, например, при настройке окна папки обычно устанавливается способ отображения ее содержимого и его упорядоченность, отображаемые панели и т.д. Также имеется возможность настройки свойств окна папки (отображение списка типичных задач или структуры (дерева) папок, показ «скрытых» объектов и др.).

    В нижней части Рабочего стола находится строка, называемая Панель задач (рис.3.2) (пользователь может изменять ее свойства, а также менять размер и положение).

    Рис. 3.2. Панель задач Windows

    В левой части Панели задач находится кнопка, открывающая меню «Пуск» , содержащее список установленных программ и ссылки на самые важные элементы управления Windows. Изменяя свойства меню, пользователь может установить его стиль (рис. 3.3).

    Рис. 3.3. Главное меню Windows (стиль Windows XP и классический)

    Меню «Пуск» состоит из пунктов, открывающих соответствующие объекты (программы, окна соответствующих папок и т.п.), а также может содержать файлы, папки и ярлыки.

    В правой части Панели задач находится Панель индикации (область уведомлений), где находятся значки автоматически (при включении компьютера) загружаемых программ, которые работают в фоновом режиме, там же отображаются часы системного времени, значок управления громкостью звука и индикатор раскладки клавиатуры.

    На Панель задач отображаются пиктограммы задач (работающих приложений). Также на нее можно помещать панели инструментов, включая их из списка контекстного меню или создавая самостоятельно. Наиболее часто используется панель «Быстрый запуск», на которую помещают ярлыки для быстрого запуска самых необходимых программ.

    Если элементы панелей инструментов не помещаются на Панели задач, то они автоматически «сворачиваются» в небольшую стрелку (при щелчке по стрелке элементы разворачиваются в вертикальном списке), а на панели индикации то же самое происходит с неиспользуемыми значками.

    Программирование в Windows основывается на использовании функций API (Application Program Interface, т.е. интерфейс программного приложения).

    Программа для Windows в значительной степени состоит из таких вызовов. Все взаимодействие с внешними устройствами и ресурсами операционной системы происходит посредством таких функций.

    Программный интерфейс приложений

    Windows API (Application Programming Interfaces) - общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows.

    Windows API в настоящее время поддерживает свыше тысячи вызовов функций, которые можно использовать в приложениях. Каждая функция Windows API имеет развернутое имя, написанное буквами как верхнего, так и нижнего регистров.

    Все основные функции Windows объявляются в заголовочных файлах. Главный заголовочный файл называется WINDOWS.H, и в этом файле содержится множество ссылок на другие заголовочные файлы.

    Основное отличие функций API от библиотечных функций С: код библиотечных функций связывается с кодом программы пользователя, а код функций API остается вне программы пользователя в динамически подключаемых библиотеках (DLL – Dynamic Link Library), что позволяет создавать более компактный и эффективный код приложений.

    При запуске программы Windows она взаимодействует с операционной системой посредством процесса «динамического связывания». Большая часть динамических библиотек DLL расположена в каталоге WINDOWS\SYSTEM.

    При компоновке программы для Windows, чтобы сделать ее исполняемой, необходимо связывать ее с «библиотеками импорта», поставляемыми в составе среды программирования (IDE – Integrated Development Environment), которой может являться, в частности, Microsoft Visual Studio. Библиотеки импорта содержат имена всех функций Windows из динамически подключаемых библиотек и ссылки на них. Компоновщик использует эту информацию для создания в исполняемом EXE-файле таблицы, которую Windows использует при загрузке программы для настройки адресов функций API.

    Графический интерфейс пользователя

    Графический интерфейс пользователя (Graphical User Interface, GUI) еще называют «визуальный интерфейс» или «графическая оконная среда».

    GUI делает возможным использование графики на растровом экране. Графика дает лучшее восприятие элементов управления на экране, визуально богатую среду для передачи информации. В GUI экран становится устройством ввода и показывает различные графические объекты в виде картинок и конструкций для ввода информации, таких как кнопки или полосы прокрутки. Используя клавиатуру и манипулятор (мышь, тачпад), пользователь может непосредственно оперировать объектами на экране. Графические объекты можно перетаскивать, кнопки можно нажимать, полосы прокрутки можно прокручивать. Взаимодействие между пользователем и программой становится более тесным.

    Пользователям не надо тратить слишком много времени на то, чтобы научиться пользоваться компьютером и составлять новые программы. Система Windows способствует этому, поскольку все программы для Windows выглядят и воспринимаются одинаково.

    Любая программа для Windows имеет окно - прямоугольную область на экране, в котором приложение отображает информацию и получает реакцию от пользователя. Окно идентифицируется заголовком. Большинство функций программы запускается посредством меню. Слишком большой для экрана объем информации может быть просмотрен с помощью полос прокрутки. Некоторые пункты меню вызывают появление окон диалога, в которые пользователь вводит дополнительную информацию.

    Программирование Windows-приложений тесно связано с понятиями объектно-ориентированного программирования . Главным объектом в операционной системе Windows является окно. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами.

    Активное окно – окно, получающее реакцию от пользователя в данный момент.

    Основными элементами окна являются

    • 1 — строка заголовка title bar
    • 2 — строка меню menu bar
    • 3 — системное меню system menu
    • 4 — кнопка сворачивания окна minimize box
    • 5 — кнопка разворачивания окна maximize box
    • 6 — рамка изменения размеров sizing border
    • 7 — клиентская область client area
    • 8 — горизонтальная и вертикальная полосы прокрутки scroll bars

    Многозадачность

    Многозадачность (multitasking ) - свойство операционной системы обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.

    Операционная система Windows является многозадачной. Если программа DOS после своего запуска должна быть постоянно активной, и если ей что-то требуется (к примеру, получить очередную порцию данных с устройства ввода-вывода), то она сама должна выполнять соответствующие запросы к операционной системе, то в Windows все наоборот. Программа пассивна, после запуска она ждет, когда ей уделит внимание операционная система. Операционная система делает это посылкой специально оформленных групп данных, называемых сообщениями . Сообщения могут быть разного типа, они функционируют в системе достаточно хаотично, и приложение не знает, какого типа сообщение придет следующим.

    Логика построения Windows-приложения должна обеспечивать корректную и предсказуемую работу при поступлении сообщений любого типа. Одновременно несколько программ могут выполняться и иметь вывод на экран. Каждая программа занимает на экране прямоугольное окно. Пользователь может перемещать окна по всему экрану, менять их размер, переключаться между разными программами и передавать данные от одной программы к другой.

    Операционная система не сможет реализовать многозадачность без управления памятью. Так как одни программы запускаются, а другие завершаются, память фрагментируется. Операционная система Windows имеет средства управления фрагментами памяти.

    Процессы и потоки

    Процессом (process ) называется экземпляр программы, загруженной в память. Экземпляр программы может создавать потоки (thread ), которые представляют собой последовательность инструкций на выполнение.

    Выполняются не процессы, а именно потоки. Любой процесс имеет хотя бы один поток. Этот поток называется главным (основным) потоком приложения .

    Потоки на самом деле выполняются не одновременно, а по очереди. Распределение процессорного времени происходит между потоками, но переключение между ними происходит так часто, что кажется будто они выполняются параллельно.

    Все потоки ранжируются по приоритетам. Приоритет потока обозначается числом от 0 до 31, и определяется исходя из приоритета процесса, породившего поток, и относительного приоритета самого потока. Таким образом, достигается наибольшая гибкость, и каждый поток в идеале получает столько времени, сколько ему необходимо.

    Дескрипторы

    Дескриптор (описатель) объекта — служебная структура данных, представляющая собой беззнаковое целое число и служащая для идентификации различных объектов. Дескриптор представляет собой указатель на некоторую системную структуру или индекс в некоторой системной таблице.

    Примеры дескрипторов, описанных в заголовочном файле windows.h

    typedef void *HBITMAP ; // дескриптор картинки
    typedef void *HFONT ; // дескриптор шрифта

    Контекст устройства

    GDI – графический интерфейс устройства. Функции системной библиотеки GDI32.dll используются для вывода графики на экран.

    Дескриптор контекста устройства - это паспорт конкретного окна для функций GDI. Контекст устройства фактически является структурой данных, которая внутренне поддерживается GDI. Он связан с конкретным устройством вывода информации (принтер, дисплей). Что касается дисплея, то в данном случае контекст устройства обычно связан с конкретным окном на экране.

    Взаимодействие пользователя с приложением

    Взаимодействие пользователя лучше всего описывается в виде различных событий, которые инициируют ЭУ (на основе сообщений ОС о действиях пользователя) и на которые отвечает (обрабатывает) приложение. Наиболее часто используемыми событиями являются следующие:

    Ÿ Click – щелчок левой кнопки «мыши» в области окна;

    Ÿ DoubleClick – два щелчка левой кнопки «мыши» с интервалом меньше некоторого заданного значения;

    Ÿ KeyDown – нажатие клавиши клавиатуры;

    Ÿ KeyPress – нажатие и отпускание клавиши, в результате которых в программу передается некоторый символ;

    Ÿ Validating – проверки введенных данных;

    Ÿ Paint – необходимо перерисовать клиентскую область.

    События от устройства «мышь», такие, как Click , DoubleClick, MouseDown, MouseUp, MouseEnter, MouseLeave и MouseHover, связаны с различными действиями пользователей над областью ЭУ.

    Для событий Click и DoubleClick передается параметр типа EventArgs, а для событий MouseDown и MouseUp передается параметр типа MouseEventArgs, который содержит такую полезную информацию (свойства класса), как текущие координаты курсора в клиентской области, описание нажатой кнопки, количество нажатий кнопки, количество щелчков при вращении колеса «мыши».

    События клавиатуры работают аналогично: количество передаваемой информации зависит от типа обрабатываемого события. Например, для события KeyPress в метод обработки события передается параметр KeyPressEventArgs, который содержит свойство KeyChar значение типа char, которое представляет символ нажатой клавиши.

    Свойство Handled используется для определения того, было ли обработано данное событие. Если свойству Handled задано значение true, то данное событие не будет передаваться ОС для стандартной обработки. События KeyDown или KeyUp больше подходят для обработки, если требуется получить больше информации о нажатой клавише, так как они получают параметр KeyEventArgs. Параметр KeyEventArgs включает свойства о том, какие клавиши Ctrl, Alt или Shift были нажаты. Свойство KeyCode возвращает значение перечисления Keys, которое указывает на виртуальный код нажатой клавиши. В отличие от KeyPressEventArgs.KeyChar свойство KeyCode передает виртуальный код любой нажатой клавиши клавиатуры, а не алфавитноцифровой символ клавиши.

    Свойство KeyData возвращает значение перечисления Keys, а также состояние дополнительных клавиш. Например, была ли нажата клавиша Shift или Ctrl. Свойство KeyValue содержит целое значение перечисления Keys. Свойство Modifiers содержит значения Keys, которые соответствуют кодам дополнительно нажатых клавиш. Если было нажато несколько клавиш, то они объединяются с помощью операции OR. События, связанные с клавишей инициируются в следующем порядке: 1) KeyDown; 2) KeyPress; 3) KeyUp.



    События Validating, Validated, Enter, Leave, GotFocus и LostFocus имеют отношение к получению ЭУ фокуса ввода (когда ЭУ становится активным) или потери фокуса. Это происходит, когда пользователь нажимает клавишу Tab для перехода к нужному ЭУ или выбирает этот элемент с помощью «мыши». Кажется, что события Enter, Leave, GotFocus и LostFocus очень сходны по выполняемой работе. События GotFocus и LostFocus являются событиями более низкого уровня, которые связаны с WM_SETFOCUS и WM_KILLFOCUS сообщениями ОС. Обычно лучше использовать события Enter и Leave. События Validating и Validated возникают при проверке значения в ЭУ. Они получают параметр типа CancelEventArgs. С его помощью можно прервать следующие события, если задать свойству Cancel значение true. Если разработчик задает собственный код проверки введенных значений и проверка оказалась не успешной, то можно задать свойству Cancel значение true и ЭУ не будет терять фокус ввода (не будет выполняться переход к следующему ЭУ формы). Событие Validating возникает в ходе проверки, а событие Validated возникает после выполнения проверки. Эти события возникают в следующем порядке: 1) Enter; 2) GotFocus; 3) Leave; 4) Validating; 5) Validated; 6) LostFocus.

    Обычное Windows приложение содержит несколько форм , которые создаются с помощью объектов класса Form. Данный класс также является ЭУ и наследуется от базового класса Control. Одни формы приложения открываются в процессе работы, другие закрываются. В каждый текущий момент на экране может быть открыта одна или несколько форм, пользователь может работать с одной формой или переключаться по ходу работы с одной на другую.

    Форма, открываемая в методе Main() при вызове метода Run() класса Application, называется главной формой приложения . Ее закрытие приводит к закрытию всех остальных форм и завершению Windows приложения. Завершить приложение можно и программно, вызвав статический метод Application.Exit(). Закрытие других форм не приводит к завершению проекта. Обычно главная форма приложения всегда открыта, в то время как остальные формы открываются и закрываются (или скрываются).

    Для создания формы лучше всего (что и делается в Visual Studio) создать новый класс, производный от класса Form. В конструкторе класса можно задать требуемые значения свойств данного класса и включить в данную форму все требуемые объекты. В приведенном ниже примере создан класс MyForm. Объекты данного класса будут соответствовать окну, которое содержит нужные элементы управления и обрабатывает события, связанные с окном и элементами управления.

    using System.Windows.Forms;

    namespace WindowsApp {

    static void Main(string args){

    MyForm frm = new MyForm("Первое окно");

    Application.Run(frm);

    class MyForm: Form {

    Button btn1 = new Button();

    public MyForm(string s){

    btn1.Top = 10; btn1.Left = 20;

    btn1.Text = "Нажми";

    Controls.Add(btn1);

    btn1.Click +=new EventHandler(btn1_Click);

    Как уже было сказано, для передачи сообщений из очереди приложения в главную форму используется метод Application.Run(), которому передается ссылка на созданный объект формы. Данный метод организует цикл передачи сообщений в формы приложения. Он прекращает свою работу только при поступлении в очередь сообщения WM_QUIT, которое поступает при закрытии основного окна формы (нажатие кнопки ) или выборе команды меню для окончания работы с приложением (например: Выход или Exit).

    Для отображения элементов управления в форме необходимо создать соответствующие им объекты, задать нужные значения их свойствам и добавить их в коллекцию формы Controls. Например:

    Button btn1 = new Button();

    btn1.Top = 10; btn1.Left = 20; // задание расположения

    btn1.Text = "Нажми"; // задание текстового заголовка

    Controls.Add(btn1); // занесение в коллекцию элементов

    Для интересующих пользователей событий, которые инициируются формой и содержащимися в ней элементами управления, нужно создать обработчики событий и присвоить их значения соответствующим событиям этих объектов.

    Например, для обработки события нажатия описанной ранее кнопки, описывается обработчик события, который присваивается переменной события класса:

    // описание обработчика события

    public void btn1_Click(object o, EventArgs ea){

    MessageBox.Show("Привет, Мир!");

    btn1.Click += new EventHandler(btn1_Click);

    Результат работы данной программы показан на рис. 8.4.

    Рис. 8.4. Результат работы программы WindowsApp.

    интерфейс , событийно-ориентирована . Она ждет от интерфейса событий, которые и обрабатывает сообразно своему внутреннему состоянию.

    Эти события возникают в элементах графического интерфейса (виджетах) и обрабатываются прикрепленными к этим виджетам обработчиками. Сами виджеты имеют многочисленные свойства (цвет, размер, расположение), выстраиваются в иерархию принадлежности (один виджет может быть хозяином другого), имеют методы для доступа к своему состоянию.

    Расположением виджетов (внутри других виджетов) ведают так называемые менеджеры расположения . Виджет устанавливается на место по правилам менеджера расположения. Эти правила могут определять не только координаты виджета, но и его размеры. В Tk имеются три типа менеджеров расположения: простой упаковщик (pack), сетка ( grid ) и произвольное расположение (place).

    Но этого для работы графической программы недостаточно. Дело в том, что некоторые виджеты в графической программе должны быть взаимосвязаны определенным образом. Например, полоска прокрутки может быть взаимосвязана с текстовым виджетом: при использовании полоски текст в виджете должен двигаться, и наоборот, при перемещении по тексту полоска должна показывать текущее положение. Для связи между виджетами в Tk используются переменные, через которые виджеты и передают друг другу параметры.

    Классы виджетов

    Для построения графического интерфейса в библиотеке Tk отобраны следующие классы виджетов (в алфавитном порядке):

    • Button (Кнопка) Простая кнопка для вызова некоторых действий (выполнения определенной команды).
    • Canvas (Рисунок) Основа для вывода графических примитивов.
    • Checkbutton (Флажок) Кнопка, которая умеет переключаться между двумя состояниями при нажатии на нее.
    • Entry (Поле ввода) Горизонтальное поле, в которое можно ввести строку текста.
    • Frame (Рамка) Виджет, который содержит в себе другие визуальные компоненты.
    • Label (Надпись) Виджет может показывать текст или графическое изображение.
    • Listbox (Список) Прямоугольная рамка со списком, из которого пользователь может выделить один или несколько элементов.
    • Menu (Меню) Элемент, с помощью которого можно создавать всплывающие (popup) и ниспадающие (pulldown) меню.
    • Menubutton (Кнопка-меню) Кнопка с ниспадающим меню.
    • Message (Сообщение) Аналогично надписи, но позволяет заворачивать длинные строки и менять размер по требованию менеджера расположения.
    • Radiobutton (Селекторная кнопка) Кнопка для представления одного из альтернативных значений. Такие кнопки, как правило, действует в группе. При нажатии на одну из них кнопка группы, выбранная ранее, "отскакивает".
    • Scale (Шкала) Служит для задания числового значения путем перемещения движка в определенном диапазоне.
    • Scrollbar (Полоса прокрутки) Полоса прокрутки служит для отображения величины прокрутки в других виджетах. Может быть как вертикальной, так и горизонтальной.
    • Text (Форматированный текст) Этот прямоугольный виджет позволяет редактировать и форматировать текст с использованием различных стилей, внедрять в текст рисунки и даже окна.
    • Toplevel (Окно верхнего уровня) Показывается как отдельное окно и содержит внутри другие виджеты.

    Все эти классы не имеют отношений наследования друг с другом - они равноправны. Этот набор достаточен для построения интерфейса в большинстве случаев.

    События

    В системе современного графического интерфейса имеется возможность отслеживать различные события, связанные с клавиатурой и мышью, и происходящие на "территории" того или иного виджета. В Tk события описываются в виде текстовой строки - шаблона события, состоящего из трех элементов (модификаторы, тип события и детализация события).

    Тип события Содержание события
    Activate Активизация окна
    ButtonPress Нажатие кнопки мыши
    ButtonRelease Отжатие кнопки мыши
    Deactivate Деактивация окна
    Destroy Закрытие окна
    Enter Вхождение курсора в пределы виджета
    FocusIn Получение фокуса окном
    FocusOut Потеря фокуса окном
    KeyPress Нажатие клавиши на клавиатуре
    KeyRelease Отжатие клавиши на клавиатуре
    Leave Выход курсора за пределы виджета
    Motion Движение мыши в пределах виджета
    MouseWheel Прокрутка колесика мыши
    Reparent Изменение родителя окна
    Visibility Изменение видимости окна

    Примеры описаний событий строками и некоторые названия клавиш приведены ниже:

    "" или просто "<3>" - щелчок правой кнопки мыши (то есть, третьей, если считать на трехкнопочной мыши слева-направо). "" - двойной щелчок мышью (левой кнопкой) с нажатой кнопкой Shift. В качестве модификаторов могут быть использованы следующие (список неполный):

    Control, Shift, Lock, Button1-Button5 или B1-B5, Meta, Alt, Double, Triple.

    Просто символ обозначает событие - нажатие клавиши. Например, "k" - тоже, что "< KeyPress -k>" . Для неалфавитно-цифровых клавиш есть специальные названия:

    Cancel, BackSpace, Tab, Return, Shift_L, Control_L, Alt_L, Pause, Caps_Lock, Escape, Prior, Next, End, Home, Left, Up, Right, Down, Print, Insert, Delete, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Num_Lock, Scroll_Lock, space, less

    Здесь обозначает пробел, а - знак меньше. , , , - стрелки. < Prior > , - это PageUp и PageDown. Остальные клавиши более или менее соответствуют надписям на стандартной клавиатуре.

    Примечание :

    Следует заметить, что Shift_L , в отличие от Shift , нельзя использовать как модификатор.

    В конкретной среде комбинации, означающие что-то особенное в системе, могут не дойти до графического приложения. Например, известный всем Ctrl-Alt-Del.

    Следующая программа позволяет печатать направляемые виджету события, в частности - keysym, а также анализировать, как различные клавиши можно представить в шаблоне события:

    from Tkinter import * tk = Tk() # основное окно приложения txt = Text(tk) # текстовый виджет, принадлежащий окну tk txt.pack() # располагается менеджером pack # функция обработки события def event_info(event): txt.delete("1.0", END) # удаляется с начала до конца текста for k in dir(event): # цикл по атрибутам события if k != "_": # берутся только неслужебные атрибуты # готовится описание атрибута события ev = "%15s: %s\n" % (k, repr(getattr(event, k))) txt.insert(END, ev) # добавляется в конец текста # привязывается виджету txt функция event_info для обработки событий, # соответствующих шаблону txt.bind("", event_info) tk.mainloop() # главный цикл обработки событий

    При нажатии клавиши Esc в окне можно увидеть примерно следующее:

    char: "\x1b" delta: 9 height: 0 keycode: 9 keysym: "Escape" keysym_num: 65307 num: 9 send_event: False serial: 159 state: 0 time: -1072960858 type: "2" widget: width: 0 x: 83 x_root: 448 y: 44 y_root: 306

    x, y Координаты указателя в виджете во время события.

  • x_root, y_root Координаты указателя на экране во время события.
  • В принципе, совсем необязательно, чтобы события обрабатывал тот же виджет, который их первично принял. Например, можно перенаправить все события внутри подчиненных виджетов на данный виджет с помощью метода grab_set() (grab_release() освобождает виджет от этой обязанности). В Tk существуют и другие возможности управления событиями , которые можно изучить по документации.