Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QSpinBox
[модуль QtGui]

Класс 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().

Screenshot in Macintosh style Screenshot in Windows style

Создание Подклассов QSpinBox

Если использование 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.


Описание Свойств

cleanText : const QString

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

Функции доступа:

См. также text, QSpinBox::prefix и QSpinBox::suffix.

maximum : int

Данное свойство содержит максимальное значение счетчика.

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

Максимальное значение по умолчанию равно 99.

Функции доступа:

См. также setRange() и specialValueText.

minimum : int

Данное свойство содержит минимальное значение счетчика.

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

Минимальное значение по умолчанию равно 0.

Функции доступа:

См. также setRange() и specialValueText.

prefix : QString

Данное свойство содержит префикс счетчика.

Префикс предваряет отображаемое значение. Обычно используется для отображения единицы измерения или обозначения валюты. Например:

    sb->setPrefix("$");

Для отключения отображения префикса, установите в качестве значения данного свойства пустую строку. По умолчанию префикс не задан. Префикс не отображается, если value() == minimum() и задано specialValueText().

Если префикс не установлен, то prefix() возвращает пустую строку.

Функции доступа:

См. также suffix(), setSuffix(), specialValueText() и setSpecialValueText().

singleStep : int

Данное свойство содержит шаг приращения значения.

Если пользователь использует стрелки для изменения значения счетчика, то значение будет увеличиваться/уменьшаться на величину singleStep. Значение по умолчанию равно 1. При установке singleStep в значение, меньшее, чем 0, не происходит ничего.

Функции доступа:

suffix : QString

Данное свойство содержит суффикс счетчика.

Суффикс отображается после значения счетчика. Обычно суффикс используется для отображения единицы измерения или обозначения валюты. Например:

    sb->setSuffix(" km");

Для отключения отображения префикса, установите в качестве значения данного свойства пустую строку. По умолчанию суффикс не задан. Суффикс не отображается, если value() == minimum() и задано specialValueText().

Если суффикс не установлен, то suffix() возвращает пустую строку.

Функции доступа:

См. также prefix(), setPrefix(), specialValueText() и setSpecialValueText().

value : int

Данное свойство содержит значение счетчика.

Если новое значение отличается от текущего, то setValue() испустит valueChanged().

Функции доступа:


Описание Функций-Членов

QSpinBox::QSpinBox ( QWidget * parent = 0 )

Создает счетчик с незаданными минимальным и максимальным значениями и шагом приращения значения, равным 1. Значение счетчика устанавливается в 0. В качестве родителя устанавливается parent.

См. также setMinimum(), setMaximum() и setSingleStep().

void QSpinBox::setRange ( int min, int max )

Функция предоставлена для удобства. С помощью одного вызова позволяет установить минимальное значение в min, а максимальное - в max.

    setRange(min, max);

эквивалентно:

    setMinimum(min);
    setMaximum(max);

См. также minimum и maximum.

QString QSpinBox::textFromValue ( int v ) const   [virtual protected]

Данная виртуальная функция используется счетчиком всякий раз, когда требуется отобразить значение v. Реализация по умолчанию возвращает строку, содержащую v, определенное с помощью стандартного QLocale().toString(v). Повторная реализация может возвращать что-нибудь другое. (См. пример в подробном описании.)

Примечание: QSpinBox на вызывает данную функцию для specialValueText() и не возвращаемое значение не должно содержать prefix() и suffix().

Если Вы заново реализуете данную функцию, Вы можете также заново реализовать функции valueFromText() и validate()

См. также valueFromText() и validate().

void QSpinBox::valueChanged ( int i )   [signal]

Данный сигнал испускается счетчиком при изменении значения. Новое значение передается в виде целого числа в i.

void QSpinBox::valueChanged ( const QString & text )   [signal]

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Новое значение передается в текстовом виде в text. Оно не содержит prefix() и suffix().

int QSpinBox::valueFromText ( const QString & text ) const   [virtual protected]

Данная виртуальная функция используется, когда счетчик пытается интерпретировать введенное пользователем значение text как значение счетчика.

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

Примечание: QSpinBox обрабатывает specialValueText() отдельно; данная функция предназначена для работы только с другими значениями.

Примечание: Ни prefix() ни suffix() не включаются в text при вызове данной функции QSpinBox.

См. также textFromValue() и validate().


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz