Python и Tkinter | Кнопки
Последнее обновление: 10.09.2022
Одним из наиболее используемых компонентов в графических программах является кнопка. В tkinter кнопки представлены классом Button. Основные параметры виджета Button:
command: функция, которая вызывается при нажатии на кнопку
compund: устанавливает расположение картинки и текста относительно друг друга
cursor: курсор указателя мыши при наведении на метку
image: ссылка на изображение, которое отображается на метке
pading: отступы от границ вилжета до его текста
state: состояние кнопки
text: устанавливает текст метки
textvariable: устанавливает привязку к элементу StringVar
underline: указывает на номер символа в тексте кнопки, который подчеркивается. По умолчанию значение -1, то есть никакой символ не подчеркивается
width: ширина виджета
Добавим в окно обычную кнопку из пакета ttk:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") # стандартная кнопка btn = ttk.Button(text="Button") btn.pack() root.mainloop()
Для создания кнопки используется конструктор Button(). В этом конструкторе с помощью параметра text можно установить текст кнопки.
Чтобы разместить виджет в контейнере (главном окне), у него вызывается метод pack(). На ОС Windows мы получим следующую кнопку:
Конструктор Button определяет различные параметры, которые позволяют настроить поведение и внешний вид кнопки. Однако конкретный набор параметров зависит от того, используем ли мы кнопки из пакета tkinter или из пакета tkinter.ttk.
Обработка нажатия на кнопку
Для обработки нажатия на кнопку необходимо установить в конструкторе параметр command, присвоив ему ссылку на функцию, которая будет срабатывать при нажатии:
from tkinter import * from tkinter import ttk clicks = 0 def click_button(): global clicks clicks += 1 # изменяем текст на кнопке btn["text"] = f"Clicks {clicks}" root = Tk() root.title("METANIT.COM") root.geometry("250x150") btn = ttk.Button(text="Click Me", command=click_button) btn.pack() root.mainloop()
Здесь в качестве обработчика нажатия устанавливается функция click_button. В этой функции изменяется глобальная переменная clicks, которая хранит число кликов. Кроме того, изменяем текст кнопки, чтобы визуально было видно сколько нажатий произведено. Таким образом, при каждом нажатии кнопки будет срабатывать функция click_button, и количество кликов будет увеличиваться:
Отключение кнопки
Для ttk-кнопки мы можем установить отключенное состояние с помощью метода state(), передав ему значение «disabled». С такой кнопкой пользователь не сможет взаимодействовать:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") btn = ttk.Button(text="Click Me", state=["disabled"]) btn.pack() root.mainloop()
При этом в метод state мы можем передать набор состояний, поэтому значение «disabled» передается внутри списка.
НазадСодержаниеВперед
Использование кнопки для запуска действия или последовательности действий
Кнопки в формах Access используются для запуска действий или наборов действий . Например, кнопка может открывать другую форму. Чтобы кнопка запускала действие, нужно связать макрос или процедуру обработки событий со свойством
В этой статье
-
Добавление кнопки в форму с помощью мастера
-
Создание кнопки перетаскиванием макроса в форму
-
Создание кнопки без использования мастера
-
Настройка кнопки
Добавление кнопки в форму с помощью мастера
С помощью мастера создания кнопок можно быстро создавать кнопки для разных задач, таких как закрытие формы, открытие отчета, поиск записи или запуск макроса.
-
В области навигации щелкните форму правой кнопкой мыши и выберите в контекстном меню пункт
Конструктор. -
На вкладке Конструктор в группе Элементы управления выберите параметр Использовать мастера .
-
На вкладке Конструктор в группе Элементы управления щелкните элемент Кнопка.
Щелкните форму в том месте, где должна находиться кнопка.
Запустится мастер создания кнопок.
-
Следуйте указаниям мастера. На его последней странице нажмите кнопку Готово.
Мастер создаст кнопку и внедрит макрос в ее свойство Нажатие кнопки. Макрос будет содержать действия, выполняющие выбранную в мастере задачу.
Просмотр или изменение макроса, внедренного в кнопку
-
Щелкните в области навигации правой кнопкой мыши форму с нужной кнопкой и выберите в контекстном меню пункт Конструктор или Режим макета .
org/ListItem»>
-
В окне свойств на вкладке События в поле свойства Нажатие кнопки должен отображаться текст [Внедренный макрос]. Щелкните в этом поле и нажмите справа от него кнопку .
Откроется конструктор макросов, в котором будут показаны действия во внедренном макросе.
К началу страницы
Создание кнопки перетаскиванием макроса в форму
Кнопку запуска макроса можно создать, перетащив готовый макрос в форму в режиме конструктора.
- org/ListItem»>
-
Найдите в области навигации макрос, который должна запускать новая кнопка, и перетащите его в форму.
Access автоматически создаст кнопку и сделает ее подписью название макроса. Кроме того, Access вставит в свойство Нажатие кнопки имя макроса, чтобы он запускался при нажатии кнопки. Кнопка будет создана со стандартным именем, но лучше назначить ее свойству Имя какой-нибудь подходящий по смыслу текст. Чтобы отобразить окно свойств кнопки, когда форма открыта в режиме конструктора, щелкните кнопку и нажмите клавишу F4.
Чтобы открыть форму в режиме конструктора, щелкните ее правой кнопкой мыши в области навигации и выберите в контекстном меню пункт Конструктор .
Дополнительные сведения о создании макросов см. в статье Создание макроса пользовательского интерфейса.
К началу страницы
Создание кнопки без использования мастера
Кнопку можно создать и без мастера. Для этого нужно расположить кнопку на форме и настроить несколько свойств.
-
Щелкните форму в области навигации правой кнопкой мыши и выберите в контекстном меню пункт Конструктор .
-
Убедитесь, что на вкладке Конструктор в группе Элементы управления параметр Использовать мастера не установлен или отмените его выбор.
org/ListItem»>
-
Щелкните форму в том месте, где должна находиться кнопка.
Access добавит кнопку в форму.
Поскольку параметр Использовать мастера не установлен, больше ничего сделано не будет. Если при добавлении кнопки в форму запустится мастер создания кнопок, можете нажать в нем кнопку Отмена.
-
Выделите кнопку и нажмите F4, чтобы отобразить окно ее свойств.
-
Откройте вкладку Все, чтобы отобразить все свойства кнопки.
-
Задайте нужные свойства, руководствуясь указаниями в таблице ниже.
На вкладке Конструктор в группе Элементы управления щелкните элемент Кнопка.
Свойство |
Описание |
Имя |
По умолчанию Access назначает новой кнопке имя Кнопка и добавляет к нему число, например Кнопка34. Рекомендуется изменить такое имя на что-либо более выразительное (например, Отчет о продажах или Закрыть форму). |
Подпись |
Введите метку, которая будет отображаться на кнопке. Например, «Отчет о продажах» или «Закрыть форму». Примечание: Если свойству Рисунок кнопки назначено изображение, подпись не отображается. |
Нажатие кнопки |
В этом свойстве можно указать, что должно происходить при нажатии кнопки. Чтобы установить его, щелкните в поле свойства и выполните одно из указанных ниже действий.
Чтобы кнопка запускала сохраненный макрос, щелкните стрелку вниз и выберите имя нужного макроса. |
Чтобы получить справку по свойствам, которые здесь не описаны, поместите курсор в поле свойства и нажмите клавишу F1.
К началу страницы
Настройка кнопки
С помощью разнообразных средств настройки кнопок в Access можно изменять вид и функции кнопок. Например, можно расположить кнопки в строку или в столбик либо сделать их похожими на гиперссылки.
- org/ListItem»>
-
Выполните одну из описанных ниже процедур.
-
Создание горизонтального (табличного) или вертикального (в столбик) макета кнопок
Добавив кнопки в табличный макет или макет в столбик, можно создать строку или столбец точно выровненных кнопок. Затем их можно перемещать как группу, что упрощает изменение форм. Кроме того, вы можете применить форматирование сразу ко всей строке или столбцу кнопок либо отделить кнопки с помощью линий сетки.
- org/ListItem»>
Щелкните правой кнопкой мыши одну из кнопок, которые нужно добавить в макет, и наведите указатель на пункт Макет в контекстном меню.
-
Выберите пункт В виде таблицы или В столбик , чтобы создать соответственно строку или столбец кнопок.
Access отобразит границы кнопки, чтобы показать ее макет. У каждой кнопки есть метка, которую нельзя удалить, но можно ужать до очень маленького размера, если она не нужна.
На рисунке ниже показаны кнопка и связанная с ней метка в табличном макете. Как видите, метка находится в соседнем разделе выше — это позволяет не повторять метки для каждой записи.
На рисунке ниже показаны кнопка и связанная с ней метка в макете в столбик.
В таком макете метка и кнопка всегда расположены в одном разделе.
-
Добавьте в макет другие кнопки, перетащив их в область макета. При перетаскивании кнопки по области макета в Access отображается горизонтальная (для табличного макета) или вертикальная (для макета в столбик) полоса вставки, которая показывает, где окажется кнопка, когда вы отпустите кнопку мыши.
Когда вы отпустите кнопку мыши, элемент управления будет добавлен в макет.
-
Перемещение кнопок в раздел выше или ниже в табличном макете.
Если вы хотите оставить кнопку в табличном макете, но переместить ее в другой раздел формы (например, из раздела сведений в раздел заголовка формы), выполните указанные ниже действия.
-
Выделите кнопку.
-
На вкладке Упорядочить выберите команду Вверх или Вниз.
Кнопка переместится в соседний раздел выше или ниже, но останется в табличном макете. Если в том месте, куда вы перемещаете кнопку, уже есть элемент управления, они поменяются местами.
Примечание: В макете в столбик команды Вверх и Вниз отключены.
-
-
Перемещение всего макета кнопок
-
Щелкните любую из кнопок в макете.
В левом верхнем углу макета появится значок селектора.
-
Чтобы переместить макет в другое место, перетащите селектор.
-
-
Щелкните форму в области навигации правой кнопкой мыши и выберите пункт Конструктор .
Добавление линий сетки в макет кнопок
-
Выделите любую из кнопок в макете.
-
На вкладке Упорядочить нажмите кнопку Сетка и выберите стиль линий сетки.
Создание прозрачной кнопки
Прозрачную кнопку можно поместить поверх любого объекта в форме, чтобы придать ему функциональные свойства кнопки. Допустим, вы хотите разделить изображение на области, при нажатии которых будут запускаться разные макросы. Для этого можно поместить поверх изображения несколько прозрачных кнопок.
-
Щелкните кнопку, которую нужно сделать прозрачной, и нажмите F4, чтобы отобразить окно ее свойств.
-
Щелкните в окне свойств на вкладке Макет поле свойства Прозрачный.
-
Выберите в раскрывающемся списке значение Да.
Вы по-прежнему будете видеть контур кнопки в режиме конструктора, но в режиме формы она будет невидима.
Примечание: Выбор для свойства «Прозрачность» для кнопки «Да» — не то же самое, что для свойства «Видимый» — «Нет».
Обе операции скрывают кнопку, но если для свойства «Прозрачность» установить «Да», кнопка остается включенной. Если для свойства «Видимый» установить «Нет», кнопка будет отключена.
Отображение кнопки в виде гиперссылки
При желании можно скрыть кнопку, но оставить ее подпись. В результате получится элемент управления, который выглядит как надпись, но работает как кнопка. Можно также подчеркнуть текст подписи и изменить его цвет, чтобы он выглядел как гиперссылка.
-
Щелкните кнопку, чтобы выделить ее, и нажмите F4, чтобы открыть окно ее свойств.
-
В окне свойств на вкладке Макет щелкните поле Тип фона.
-
В раскрывающемся списке выберите вариант Прозрачный.
Кнопка будет скрыта, но ее подпись останется видимой.
-
Чтобы подчеркнуть текст подписи или изменить его цвет, воспользуйтесь инструментами из группы Шрифт на вкладке Формат.
Создание кнопки «Отмена»
-
Щелкните кнопку и нажмите F4, чтобы открыть окно ее свойств.
-
В поле свойства Отмена выберите значение Да.
Если свойство «Отмена» для кнопки имеет значение «Да» и форма является активной, пользователь может выбрать ее, щелкнув ее, нажав клавишу ESC или клавишу ВВОД, когда кнопка фокус. Если для свойства «Отмена» одной кнопки установлено «Да», для всех остальных кнопок формы оно автоматически получает ответ «Нет».
Чтобы кнопка «Отмена» отменяла все действия, выполненные в форме или диалоговом окне, нужно создать соответствующий макрос или процедуру обработки событий и связать их со свойством Нажатие кнопки.
Примечание: Если в форме разрешены необратимые операции (например, удаление), рекомендуется сделать кнопку «Отмена» используемой по умолчанию. Чтобы сделать это, установите значение Да для свойств По умолчанию и Отмена.
Отображение рисунка на кнопке. Введите в поле свойства Рисунок имя файла изображения (например, в формате BMP, ICO или DIB) и путь к нему. Если вы не помните точно имя файла или путь, нажмите кнопку , чтобы открыть построитель рисунков.
Нажмите кнопку Обзор, чтобы найти нужное изображение, или щелкните одно из профессиональных изображений в списке Имеющиеся рисунки, и оно появится в окне предварительного просмотра. Когда найдете нужный рисунок, нажмите ОК, чтобы добавить его на кнопку.
По умолчанию в Access свойство Тип рисунка имеет значение Внедренное. Когда вы назначаете изображение свойству Рисунок, его копия сохраняется в файле базы данных Access. Все последующие изменения исходного рисунка не отражаются на кнопке. Чтобы его изменения отражались и на кнопке, выберите для свойства Тип рисунка значение Связанное. Перемещать исходный рисунок нельзя. Если вы переместите или переименуете файл рисунка, при открытии базы данных в Access появится сообщение об ошибке, а на кнопке вместо рисунка будет показана ее подпись.
Отображение на кнопке и рисунка, и подписи
На кнопке можно отобразить и рисунок, и подпись. Чтобы сделать это, выполните указанные ниже действия.
-
Добавьте рисунок на кнопку по приведенным ранее инструкциям
-
Выделите кнопку. Если окно ее свойств не отобразится, нажмите клавишу F4.
-
В окне свойств кнопки на вкладке Макет введите нужную подпись в поле свойства Подпись.
-
Щелкните стрелку вниз в поле свойства «Расположение подписей рисунков» и выберите нужный уклад.
Например, чтобы подпись отображалась под рисунком, выберите «Снизу». Чтобы отобразить подпись справа от рисунка, выберите «Справа». Чтобы расположение было зависеть от системного региональных порядоков, выберите «Общие». При использовании этого параметра подпись будет отображаться справа на языках с текстом слева направо, а слева на языках, которые читают текст справа налево.
К началу страницы
Значение кнопки HTML Атрибут
❮ Тег HTML
Пример
Две кнопки с одинаковыми именами, которые при нажатии выдают разные значения:
Попробуйте сами »Определение и использование
Атрибут value
указывает начальное значение для
в форме HTML.
Примечание: В форме кнопка и ее значение отправляются, только если сама кнопка использовалась для отправки формы.
Поддержка браузера
Атрибут | |||||
---|---|---|---|---|---|
значение | Да | Да | Да | Да | Да |
Примечание: Если вы используете элемент
в форме HTML,
Internet Explorer, предыдущая версия 8, отправит текст между <кнопка>
и
тегов, в то время как другие браузеры будут отправлять содержимое тегов значение
атрибут.
Синтаксис
<значение кнопки= «значение» >
Значения атрибутов
Значение | Описание |
---|---|
значение | Начальное значение кнопки |
❮ HTML-тег