Шаг 40.
Библиотека Qt.
Класс QCheckBox

    На этом шаге рассмотрим класс виджета кнопки флажка QCheckBox.

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

    Флажок состоит из маленького прямоугольника и может содержать поясняющий текст или картинку. При щелчке на виджете в прямоугольнике появится отметка. Этого же можно добиться нажатием клавиши Пробел, когда виджет находится в фокусе. Этот виджет устанавливается в положение "включено" или "выключено" и является, по логике действия, кнопкой-выключателем (toggle button). Но, в отличие от последней, флажок может иметь еще и третье состояние — неопределенное (рис. 1). Пример использования такого состояния можно увидеть в диалоговом окне Properties (Свойства) Проводника в ОС Windows при выборе нескольких файлов, имеющих разные атрибуты.


Рис.1. Примеры флажков

    В листинге приводится текст cpp-файла приложения, окно которого показано на рис. 1.

#include <QApplication>
#include <QWidget>
#include <QCheckBox>
#include <QVBoxLayout>
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    app.setApplicationDisplayName("Флажки");
    QWidget    wgt;
    //создаются два флажка — указатели pcbN и pcbT
    QCheckBox* pcbN = new QCheckBox("&Обычный флажок");
    //Обычный флажок помечается вызовом метода
    //setChecked() с параметром true
    pcbN->setChecked(true);

    QCheckBox* pcbT = new QCheckBox("&Флажок с неопределенным состоянием");
    //Флажок с неопределенным состоянием переводится
    //в режим поддержки третьего, неопределенного состояния передачей
    //значения true в метод setTristate()
    pcbT->setTristate(true);
    //вызовом метода setCheckState() и передачей в него
    //значения Qt::PartiallyChecked устанавливается третье состояние
    pcbT->setCheckState(Qt::PartiallyChecked);

    QVBoxLayout* pvbxL = new QVBoxLayout;
    pvbxL->addWidget(pcbN);
    pvbxL->addWidget(pcbT);
    wgt.setLayout(pvbxL);

    wgt.show();

    return app.exec();
}

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

    На следующем шаге рассмотрим виджет переключателя.




Предыдущий шаг Содержание Следующий шаг