Шаг 86.
Библиотека Qt.
Класс QTabWidget

    На этом шаге рассмотрим класс QTabWidget.

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

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

    Страницы можно делать доступными и недоступными. Чтобы сделать страницу недоступной, нужно вызвать метод setTabEnabled() и передать ему значение false. Вызовом слота setCurrentIndex() можно сделать вкладку текущей.

    Пример, показанный на рис. 1, содержит вкладки Android, Linux, Windows, MacOSX и MSDOS. При выборе каждой из вкладок происходит отображение виджета, закрепленного за ней.


Рис.1. Пример оформления вкладок

    Рассмотрим текст приложения:

//создается набор вкладок
QTabWidget tab;
QStringList lst;
lst << "Android" << "Linux" << "Windows" << "MacOSX" << "MSDOS";
foreach(QString str, lst)
{   //создаем виджет, который используется для
    //редактирования и отображения обычного текста
    QPlainTextEdit *edt= new QPlainTextEdit(&tab);
    //установим режим только для чтения
    edt->setReadOnly(true);
    //создаем объект для работы с файлом, передав в
    //конструктор строку, содержащую имя файла
    QFile file(str+".txt");
    //открываем файл только для чтения
    file.open(QFile::ReadOnly);
    //создаем объект для чтения текстовых данных
    //(например, из текстового файла)
    QTextStream in(&file);
    //методом readAll() считываем все содержимое файла
    //метод setPlainText() устанавливает содержимое виджета
    //QPlainTextEdit
    edt->setPlainText((in.readAll()));
    //вызовом метода addTab() в цикле добавляются новые вкладки
    //в первом параметре этого метода передается указатель
    //на виджет, который должен отображаться при выборе
    //вкладки, во втором — растровое изображение,
    //а в третьем — текст вкладки
    tab.addTab(edt, QPixmap(str + ".jpg"), str);
}
tab.resize(500, 400);
tab.show();

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

    На следующем шаге рассмотрим класс QToolBox.




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