Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Класс QSpinBox предоставляет виджет счетчика. Далее...
#include <QSpinBox>
Наследует QAbstractSpinBox.
|
Класс QSpinBox предоставляет виджет счетчика.
QSpinBox разработан для работы с целыми дискретными наборами значений (например, названиями месяцев); для работы со значениями с плавающей точкой используйте QDoubleSpinBox.
QSpinBox позволяет пользователю указать значение щелкая мышью по кнопкам вверх/вниз или нажимая клавиши клавиатуры вверх/вниз для увеличения/уменьшения значения, отображенного в настоящий момент. Также пользователь может ввести значение вручную. Если значение введено в счетчик непосредственно, то значение будет изменено, и сигнал valueChanged() будет испущен с новым значением при нажатии клавиш Enter/Return, при потере фокуса или при деактивации счетчика (см. QWidget::windowActivationChanged()). Счетчик поддерживает работу с целыми числами, но может быть приспособлен, помощью validate(), textFromValue() и valueFromText(), и для работы с различными строками.
При каждом изменении значения QSpinBox испускается сигнал valueChanged(). Текущее значение может быть получено с помощью value(), а установлено с помощью setValue().
При щелчке мышью по кнопкам вверх/вниз или при нажатии клавиш клавиатуры вверх/вниз, значение счетчика увеличивается или уменьшается на шаг приращения singleStep(). Если Вы хотите изменить это поведение, то должны заново реализовать в своем подклассе виртуальную функцию stepBy(). Минимальное и максимальное значения, а также шаг приращения, могут быть установлены одним из конструкторов и изменены позже, с помощью setMinimum(), setMaximum() и setSingleStep().
Большинство счетчиков имеют направление, но QSpinBox также может работать и как циклический, т.е. если диапазон счетчика 0-99 и текущее его значение равно 99, то, при щелчке мышью по кнопке "up" и значении wrapping() равно true, счетчик примет значение 0. Если Вы хотите, чтобы Ваш счетчик вел себя как циклический, используйте setWrapping().
Отображаемое значение может иметь в качестве префикса и суффикса произвольные строки указывающие, например, валюту или единицу измерения. См. setPrefix() и setSuffix(). Текст счетчика можно получить с помощью text() (возвращаемое значение включает prefix() и suffix()) или с помощью cleanText() (возвращаемое значение не содержит prefix() и suffix() и пробелы).
Часто нужно предоставить пользователю, в дополнение к числовому диапазону, специальное значение (значение по умолчанию). Разъяснение, как это сделать в QSpinBox, см. setSpecialValueText().
Если использование prefix(), suffix() и specialValueText() не доет неоходимой гибкости, Вы можете создать подкласс QSpinBox и заново реализовать valueFromText() и textFromValue(). В следующем примере приведен код пользовательского счетчика для ввода пользователем размеров изображений (например, "32 x 32"):
int IconSizeSpinBox::valueFromText(const QString &text) const { QRegExp regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?")); if (regExp.exactMatch(text)) { return regExp.cap(1).toInt(); } else { return 0; } } QString IconSizeSpinBox::textFromValue(int value) const { return tr("%1 x %1").arg(value); }
Полный код реализации можно найти в примере Icons.
См. также QDoubleSpinBox, QSlider и GUI Design Handbook: Slider.
Данное свойство содержит текст счетчика очищенный от префикса и суффикса и заполняющих и пробелов.
Функции доступа:
См. также text, QSpinBox::prefix и QSpinBox::suffix.
Данное свойство содержит максимальное значение счетчика.
При установке данного свойства, может, если необходимо чтобы гарантировать действительность диапазона, измениться minimum.
Максимальное значение по умолчанию равно 99.
Функции доступа:
См. также setRange() и specialValueText.
Данное свойство содержит минимальное значение счетчика.
При установке данного свойства, может, если необходимо чтобы гарантировать действительность диапазона, измениться maximum.
Минимальное значение по умолчанию равно 0.
Функции доступа:
См. также setRange() и specialValueText.
Данное свойство содержит префикс счетчика.
Префикс предваряет отображаемое значение. Обычно используется для отображения единицы измерения или обозначения валюты. Например:
sb->setPrefix("$");
Для отключения отображения префикса, установите в качестве значения данного свойства пустую строку. По умолчанию префикс не задан. Префикс не отображается, если value() == minimum() и задано specialValueText().
Если префикс не установлен, то prefix() возвращает пустую строку.
Функции доступа:
См. также suffix(), setSuffix(), specialValueText() и setSpecialValueText().
Данное свойство содержит шаг приращения значения.
Если пользователь использует стрелки для изменения значения счетчика, то значение будет увеличиваться/уменьшаться на величину singleStep. Значение по умолчанию равно 1. При установке singleStep в значение, меньшее, чем 0, не происходит ничего.
Функции доступа:
Данное свойство содержит суффикс счетчика.
Суффикс отображается после значения счетчика. Обычно суффикс используется для отображения единицы измерения или обозначения валюты. Например:
sb->setSuffix(" km");
Для отключения отображения префикса, установите в качестве значения данного свойства пустую строку. По умолчанию суффикс не задан. Суффикс не отображается, если value() == minimum() и задано specialValueText().
Если суффикс не установлен, то suffix() возвращает пустую строку.
Функции доступа:
См. также prefix(), setPrefix(), specialValueText() и setSpecialValueText().
Данное свойство содержит значение счетчика.
Если новое значение отличается от текущего, то setValue() испустит valueChanged().
Функции доступа:
Создает счетчик с незаданными минимальным и максимальным значениями и шагом приращения значения, равным 1. Значение счетчика устанавливается в 0. В качестве родителя устанавливается parent.
См. также setMinimum(), setMaximum() и setSingleStep().
Функция предоставлена для удобства. С помощью одного вызова позволяет установить минимальное значение в min, а максимальное - в max.
setRange(min, max);
эквивалентно:
setMinimum(min); setMaximum(max);
Данная виртуальная функция используется счетчиком всякий раз, когда требуется отобразить значение v. Реализация по умолчанию возвращает строку, содержащую v, определенное с помощью стандартного QLocale().toString(v). Повторная реализация может возвращать что-нибудь другое. (См. пример в подробном описании.)
Примечание: QSpinBox на вызывает данную функцию для specialValueText() и не возвращаемое значение не должно содержать prefix() и suffix().
Если Вы заново реализуете данную функцию, Вы можете также заново реализовать функции valueFromText() и validate()
См. также valueFromText() и validate().
Данный сигнал испускается счетчиком при изменении значения. Новое значение передается в виде целого числа в i.
Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.
Новое значение передается в текстовом виде в text. Оно не содержит prefix() и suffix().
Данная виртуальная функция используется, когда счетчик пытается интерпретировать введенное пользователем значение text как значение счетчика.
С помощью повторной реализации данной функции, подклассы могут отображать значения счетчика в нечисловом виде.
Примечание: QSpinBox обрабатывает specialValueText() отдельно; данная функция предназначена для работы только с другими значениями.
Примечание: Ни prefix() ни suffix() не включаются в text при вызове данной функции QSpinBox.
См. также textFromValue() и validate().
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |