Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_GIIS.docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
119.78 Кб
Скачать

8. Библиотека qt. Управление компоновкой. Менеджеры компоновки.

Менеджер компоновки — это объект, который устанавливает размер и положение виджетов, располагающихся в зоне его действия.

QT имеет три основных класса менеджеров компановки:

1. QHBoxLayout — размещает виджеты по горизонтали слева направо или справа налево в зависимости от культурных традиций;

2. QVBoxLayout — размещает виджеты по вертикали сверху вниз;

3. QGridLayout — размещает виджеты в ячейках сетки;

ПРИМЕР:

QWidget *window = new QWidget;

QPushButton *button1 = new QPushButton("One");

QPushButton *button2 = new QPushButton("Two");

QPushButton *button3 = new QPushButton("Three");

QHBoxLayout *layout = new QHBoxLayout;

layout->addWidget(button1);

layout->addWidget(button2);

layout->addWidget(button3);

window->setLayout(layout);

window->show();

Коэффициенты растяжения

Виджеты, обычно, создаются без заданного коэффициента растяжения. При помещении виджета в компоновщик ему выделяется часть общего пространства, в соответствии с максимальным значением из QWidget::sizePolicy() и предпочтения минимального размера.

9. Библиотека qt. Управление компоновкой. Стековая компоновка.

Класс QStackedLayout (менеджер стековой компоновки) управляет компоновкой набора дочерних виджетов или «страниц», показывая в каждый конкретный момент только одну из них и скрывая от пользователя остальные. Сам менеджер QStacked-Layout невидим и не содержит внутри себя средства для пользователя по изменению страницы.

Для удобства в Qt предусмотрен класс QStackedWidget, представляющий собой QWidget со встроенным QStackedLayout.

Если мы хотим сделать какой-нибудь конкретный виджет видимым, мы можем вызвать функцию setCurrentlndex(), задавая номер страницы. Номер страницы дочернего виджета можно получить с помощью функ­ции indexOf().

10. Библиотека qt. Управление компоновкой. Разделители.

Разделитель (splitter) -- это виджет, который используется для размещения других виджетов и их разделения вертикальной или горизонтальной полосой. Пользователь может изменять размеры виджетов, перемещая разделитель.

Разделители в Qt реализованы в виде класса QSplitter. Подчиненные виджеты автоматически размещаются друг за дружкой, в порядке их создания, в смежных областях, разделителя.

#include <qapplication.h>

#include <qsplitter.h>

#include <qtextedit.h>

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QSplitter splitter(Qt::Horizontal);

splitter.setCaption(QObject::tr("Splitter"));

app.setMainWidget(&splitter);

QTextEdit *firstEditor = new QTextEdit(&splitter);

QTextEdit *secondEditor = new QTextEdit(&splitter);

QTextEdit *thirdEditor = new QTextEdit(&splitter);

splitter.show();

return app.exec();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]