На этом шаге рассмотрим класс QFrame.
Класс QFrame унаследован от класса QWidget и расширяет его возможностью отображения рамки. Этот класс является базовым для большого числа классов виджетов.
Стиль рамки может быть разным, и устанавливается он с помощью метода setFrameStyle(), которому передаются флаги формы и флаги теней рамки. Значения соединяются друг с другом побитовой операцией | (ИЛИ).
Существуют три флага теней: QFrame::Raised, QFrame::Plain и QFrame::Sunken. С их помощью достигается эффект вогнутости или выпуклости рамки.
Для задания внешнего вида рамки можно воспользоваться одной из пяти основных форм: QFrame::Box, QFrame::Panel, QFrame::WinPanel, QFrame::HLine, QFrame::VLine. Если нужно, чтобы рамка вообще не отображалась, то тогда в метод setFrameStyle() передается значение QFrame::NoFrame.
Варианты рамок приведены на рис. 1.
Рис.1. Варианты рамок
Файлы приложения можно взять здесь.
Методом setContentsMargin() класса QWidget устанавливается расстояние от рамки до содержимого виджета, а методами setLineWidth() и setMidLineWidth() можно изменять толщину самой рамки.
QFrame pfrm = new QFrame; pfrm->setFrameStyle(QFrame::Box | QFrame::Sunken); pfrm->setLineWidth(3);
В этом примере создается виджет рамки, в котором методом setFrameStyle() устанавливается нужный стиль рамки, а методом setLineWidth() — ее толщина.
Результат представлен рис. 2.
Рис.2. Пример рамки
Файлы приложения можно взять здесь.
На следующем шаге рассмотрим виджет видовой прокрутки.