Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Виджет QPushButton представляет собой командную кнопку. Далее...
#include <QPushButton>
Наследует QAbstractButton.
Виджет QPushButton представляет собой командную кнопку.
Кнопка, или командная кнопка, является, по всей видимости, наиболее часто используемым виджетом в любом графическом пользовательском интерфейсе. Нажатие (щелчок) кнопки указывает компьютеру, что необходимо выполнить действие или ответить на вопрос. Типичные кнопки - это OK, Apply (Применить), Cancel (Отменить), Close (Закрыть), Yes (Да), No (Нет) и Help (Справка).
Командная кнопка, обычно, прямоугольна и отображает текстовый ярлык описывающий ее действие. Подчеркнутый символ текстового ярлыка (предваряемый в тексте амперсандом) указывает горячую клавишу, например:
QPushButton *pb = new QPushButton("&Download", this);
В данном примере сочетанием горячих клавиш является Alt+D, а текстовая метка выглядит как Download.
Кнопки отображают текстовую метку и, при желании, небольшую иконку, которые могут быть установлены в конструкторе и позднее изменены с помощью setText() и setIcon(). Если кнопка недоступна, то текст и иконка будут отображаться в соответствии со стилем GUI чтобы показать, что кнопка "недоступна".
Кнопка испускает сигнал clicked() когда активизируется мышью, клавишей пробела или сокрыщенной клавишей. Соединить данный сигнал для обработки нажатия кнопки. Кнопка также предоставляет другие, реже испольуемые сигналы, например, pressed() и released().
Командные кнопки в диалогах по умолчанию являются кнопками автоумолчания, т.е. они становятся кнопками по умолчанию автоматически при получении фокуса ввода клавиатуры. Кнопка по умолчанию - это кнопка, которая активизируется когда пользователь нажимает клавишу Enter или Return в диалоге. Вы можете изменить данное свойство используя setAutoDefault(). Обратите внимание, что кнопки автоумолчания резервируют небольшое дополнительное пространство которое необходимо для рисования кнопки по умолчанию. Если Вы не хотите занимать место вокруг кнопок, вызовите setAutoDefault(false).
Будучи таким важным элементом, кнопка за прошлое десятиление была сильно усовершенствована чтобы вместить в себя много разновидностей. Стиль Microsoft предоставляет, приблизительно, десять параметров кнопок в Windows и подразумевается множество их комбинаций.
Наиболее важные режимы и состояния кнопки:
Как правило, кнопку используют чтобы заставить приложение или диалог выполненить действие по щелчку пользователя на ней (такие как Apply (Применить), Cancel (Отменить), Close (Закрыть) и Help (Справка)) или когда виджет, как предполагается, имеет широкую прямоугольную форму и надпись. Маленькие, обычно квадратные кнопки, не выполняющие действий, но изменяющие состояние окна (такие как кнопки в правом верхнем углу QFileDialog) не являются командными кнопками, а являются кнопками инструментов. Qt для этих кнопок предоставляет специальный класс (QToolButton).
Если вы нуждаетесь в кнопке с поведением подобным поведению фиксируемой кнопке (см. setCheckable()) или подобной кнопке с автоповторением сигнала активации пока она нажата, подобно стрелке в полосе прокрутки (см. setAutoRepeat()), то командная кнопка - это, вероятно, не то, что Вам нужно. Когда есть сомнения - используйте кнопку инструмента.
Одна из разновидностей командной кнопки - кнопка меню. Такие кнопки могут предоставить как одну команду, так и несколько, когда по ним щелкают, выпадает меню, состоящее из нескольких команд на выбор. Чтобы связать выпадающее меню с командной кнопкой, используйте метод setMenu().
Другие классы кнопок - это переключатели (см. QRadioButton) и флажки (см. QCheckBox).
В Qt базовый класс QAbstractButton реализует большинство методов и API, а класс QPushButton реализует логику GUI. Для получения более полной информации об API см. QAbstractButton.
См. также QToolButton, QRadioButton, QCheckBox и GUI Design Handbook: Push Button.
Данное свойство указывает, является-ли кнопка кнопкой автоумолчания.
Если данное свойство установлено в true, то кнопка является кнопкой автоумолчания в диалоге.
В некоторых стилях GUI кнопка по умолчанию отображается с дополнительной рамкой вокруг толщиной до 3 пикселей или более. Qt автоматически оставляет это место свободным вокруг кнопок автоумолчания, т.е. кнопки автоумолчания могут иметь немного больший рекомендуемый размер.
По умолчанию данное свойство равно true для кнопок имеющих в качестве родителя QDialog; для других кнопок оно равно false.
Для получения более подробной информации о взаимодействии свойств default и auto-default см. описание свойства default.
Функции доступа:
Данное свойство указывает, является-ли кнопка кнопкой по умолчанию.
Если данное свойство установлено в true, то кнопка активизируется если пользователь нажимает клавишу Enter (или Return) в диалоге.
Кнопка активизируется при нажатии пользователем клавиши Enter независимо от фокуса: Если есть кнопка по умолчанию, то срабатывает она; в противном случае, если есть одна или более кнопок autoDefault то срабатывает первая из кнопок autoDefault которая была бы активизирована при нажатии клавиши Tab. Если нет кнопок по умолчанию и кнопок autoDefault, то только нажатие Space (Пробел) на кнопке имеющей фокус, щелчок мыши или использование горячего сочетания клавиш смогут активизировать кнопку.
В диалоге только одна кнопка в один момент может быть кнопкой по умолчанию. Данная кнопка будет отображаться с дополнительной рамкой вокруг (в зависимости от стиля GUI).
Поведение кнопки по умолчанию проявляется только в диалоге. Кнопка всегда может быть активизирована нажатием на клавиатуре Enter (или Return) или нажатием Spacebar когда кнопка имеет фокус.
По умолчанию свойство имеет значение false.
Функции доступа:
Данное свойсто указывает, доступна-ли рамка кнопки.
По умолчанию свойство имеет значение false.
Функции доступа:
Создает командную кнопку без надписи и с родителем parent.
Создает командную кнопку с родителем parent и надписью text.
Создает командную кнопку с иконкой icon, текстом text и родителемparent.
Обратите внимание, что Вы можете также передать объект QPixmap в качестве иконки (благодаря неявному преобразованию типов в C++).
Разрушает командную кнопку.
Возвращает ассоциированное с кнопкой выплывающее меню или 0 если всплывающее меню для кнопки не было установлено.
См. также setMenu().
Ассоциирует всплывающее меню menu с данной командной кнопкой. Это приведет к превращению кнопки в кнопку меню, что в некоторых стилях может вызвать появление маленького треугольника справа от надписи кнопки.
Меню передается кнопке не по значению.
См. также menu().
Отображает ассоциированное с кнопкой всплывающее меню. Если никакое меню с кнопкой не ассоциировано, то функция ничего не делает. Данная функция не завершает работу пока пользователь всплывающее меню не будет закрыто пользователем.
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |