Компонент "аккордеон"

Класс QToolBox позволяет создать компонент с несколькими вкладками. Изначально отображается содержимое только одной вкладки, а у остальных доступны только заголовки. После щелчка мышью на заголовке вкладки она открывается, а остальные сворачиваются. Иерархия наследования выглядит так:

(QObject, QPaintDevice) — QWidget — QFrame — QToolBox

Конструктор класса QToolBox имеет следующий формат:

QToolBox(QWidget *parent = nullptr,
         Qt::WindowFlags f = Qt::WindowFlags())

В параметре parent передается указатель на родительский компонент. Если параметр не указан или имеет значение nullptr, то компонент будет обладать своим собственным окном. В параметре f может быть указан тип окна. Пример использования класса QToolBox:

QWidget window;
window.setWindowTitle("Класс QToolBox");
window.resize(350, 150);
QToolBox *toolBox = new QToolBox();
toolBox->addItem(new QLabel("Содержимое вкладки 1"), "Вкладка &1");
toolBox->addItem(new QLabel("Содержимое вкладки 2"), "Вкладка &2");
toolBox->addItem(new QLabel("Содержимое вкладки 3"), "Вкладка &3");
toolBox->setCurrentIndex(0);
QVBoxLayout *vbox = new QVBoxLayout();
vbox->addWidget(toolBox);
window.setLayout(vbox);
window.show();

Класс QToolBox содержит следующие методы (перечислены только основные методы; полный список смотрите в документации):

  • addItem() — добавляет вкладку в конец контейнера. Метод возвращает индекс добавленной вкладки. Прототипы метода:
int addItem(QWidget *widget, const QString &text)
int addItem(QWidget *widget, const QIcon &iconSet,
            const QString &text)

В параметре widget передается указатель на компонент, который будет отображаться на вкладке. Чаще всего этот компонент является лишь родителем для других компонентов. Параметр text задает текст, который будет отображаться на ярлыке в области заголовка. Внутри текста заголовка символ &, указанный перед буквой, задает комбинацию клавиш быстрого доступа. В этом случае буква, перед которой указан символ &, будет подчеркнута, что является подсказкой пользователю. При одновременном нажатии клавиши <Alt> и подчеркнутой буквы соответствующая вкладка будет отображена. Параметр iconSet позволяет указать значок (экземпляр класса QIcon), который отобразится перед текстом в области заголовка;

  • insertItem() — добавляет вкладку в указанную позицию. Метод возвращает индекс добавленной вкладки. Прототипы метода:
int insertItem(int index, QWidget *widget, const QString &text)
int insertItem(int index, QWidget *widget, const QIcon &icon,
               const QString &text)
  • removeItem() — удаляет вкладку с указанным индексом, при этом компонент, который отображался на вкладке, не удаляется. Прототип метода:
void removeItem(int index)
  • setItemText() — задает текст заголовка для вкладки с указанным индексом. Прототип метода:
void setItemText(int index, const QString &text)
  • itemText() — возвращает текст заголовка вкладки с указанным индексом. Прототип метода:
QString itemText(int index) const
  • setItemIcon() — устанавливает иконку перед текстом в заголовке вкладки с указанным индексом. Прототип метода:
void setItemIcon(int index, const QIcon &icon)

Получение значения:

QIcon itemIcon(int index) const
  • setItemToolTip() — задает текст вплывающей подсказки для ярлыка вкладки с указанным индексом. Прототип метода:
void setItemToolTip(int index, const QString &toolTip)

Получение значения:

QString itemToolTip(int index) const
  • setItemEnabled() — если во втором параметре указано значение false, то вкладка с указанным в первом параметре индексом станет недоступной. Значение true делает вкладку доступной. Прототип метода:
void setItemEnabled(int index, bool enabled)
  • isItemEnabled() — возвращает значение true, если вкладка с указанным индексом доступна, и false — в противном случае. Прототип метода:
bool isItemEnabled(int index) const
  • count() — возвращает количество вкладок. Прототип метода:
int count() const
  • currentIndex() — возвращает индекс видимой вкладки. Прототип метода:
int currentIndex() const
  • currentWidget() — возвращает указатель на компонент, который расположен на видимой вкладке. Прототип метода:
QWidget *currentWidget() const
  • widget() — возвращает указатель на компонент, который расположен по указанному индексу, или нулевой указатель. Прототип метода:
QWidget *widget(int index) const
  • indexOf() — возвращает индекс вкладки, на которой расположен компонент. Если компонент не найден возвращается значение -1. Прототип метода:
int indexOf(const QWidget *widget) const
  • setCurrentIndex() — делает видимой вкладку с указанным в параметре индексом. Метод является слотом. Прототип метода:
void setCurrentIndex(int index)
  • setCurrentWidget() — делает видимым компонент, указатель на который передан в параметре. Метод является слотом. Прототип метода:
void setCurrentWidget(QWidget *widget)

При изменении вкладки генерируется сигнал currentChanged(int). Через параметр внутри обработчика доступен индекс вкладки.

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов