Методы

intaddSpacer ( int w, int h, int row, int col, QSizePolicy hData = QSizePolicy_Minimum, QSizePolicy vData = QSizePolicy_Minimum )
inthorizontalSpacing ( )
intremoveSpacer ( int index )
intspacing ( )
intverticalSpacing ( )

Слоты

voidaddLayout ( QLayout *layout, int row, int column )
voidaddLayout ( QLayout *layout, int row, int column, int rowSpan, int colSpan )
voidaddWidget ( QWidget *widget, int row, int column )
voidaddWidget ( QWidget *widget, int row, int column, int rowSpan, int colSpan )
voidsetColumnMinimumWidth ( int col, int minWidth )
voidsetContentsMargins ( int left, int top, int right, int bottom )
voidsetHorizontalSpacing ( int spacing )
voidsetMargin ( int margin )
voidsetRowMinimumHeight ( int row, int minHeight )
voidsetSpacing ( int spacing )
voidsetVerticalSpacing ( int spacing )

Описание методов

int QGridLayout::addSpacer ( int w, int h, int row, int col, QSizePolicy hData = QSizePolicy_Minimum, QSizePolicy vData = QSizePolicy_Minimum )  

int QGridLayout::horizontalSpacing ( )  

int QGridLayout::removeSpacer ( int index )  

int QGridLayout::spacing ( )  

int QGridLayout::verticalSpacing ( )  

Описание слотов

void QGridLayout::addLayout ( QLayout *layout, int row, int column )  

void QGridLayout::addLayout ( QLayout *layout, int row, int column, int rowSpan, int colSpan )  

void QGridLayout::addWidget ( QWidget *widget, int row, int column )  

void QGridLayout::addWidget ( QWidget *widget, int row, int column, int rowSpan, int colSpan )  

void QGridLayout::setColumnMinimumWidth ( int col, int minWidth )  

void QGridLayout::setContentsMargins ( int left, int top, int right, int bottom )  

void QGridLayout::setHorizontalSpacing ( int spacing )  

void QGridLayout::setMargin ( int margin )  

void QGridLayout::setRowMinimumHeight ( int row, int minHeight )  

void QGridLayout::setSpacing ( int spacing )  

void QGridLayout::setVerticalSpacing ( int spacing )  

Примеры

$app = new QApplication;

$widget = new QWidget; // ГЛАВНОЕ ОКНО
$widget->setWindowTitle("PHPQt5 Layouts Example");

// Создаем две разметки:
$vboxlayout = new QVBoxLayout;
$gridLayout = new QGridLayout;

// Рисуем кнопки
$maxRows = 5;
$maxCols = 3;
for($row = 1; $row <= $maxRows; $row++) {
  for($col = 1; $col <= $maxCols; $col++) {
    $button = new QPushButton($widget);
    $button->text = "Button #${row}x${col}";
    $button->minimumHeight = 50;
    
    // Добавляем созданную кнопку в сеточную разметку, указав строку и колонку
    $gridLayout->addWidget($button, $row-1, $col-1);
  }
}

// Рисуем еще одну кнопку
$button = new QPushButton;
$button->minimumHeight = 100;
$button->text = "Закрыть";

// Соединяем сигнал кнопки "КЛИК" со слотом формы "ЗАКРЫТЬ"
$button->connect($button, SIGNAL('clicked(bool)'), $widget, SLOT('close()'));

// Добавляем кнопку в сеточную разметку, дополнительно указав какие ячейки нужно объединить
// addWidget(QWidget *qw, int row, int col, int rowSpan, int colSpan)
$gridLayout->addWidget($button, $maxRows, 0, 1, 3);

// В вертикальную разметку добавляем сеточную разметку
$vboxlayout->addLayout($gridLayout);

// Добавляем в разметку элемент "Распорка" (он же пружинка), чтобы прижать весь контент к потолку.
// тут 2000 - это минимальный размер распорки по ширине и высоте, а остальные параметры - константы,
// описывающие поведение распорки. В данном случае константы делают распорку "разжимающейся"
//
// Как правильно пользоваться распорками в Qt можно найти в гугле. 
// Отличается только метод добавления распорки: её не нужно создавать самостоятельно.
$vboxlayout->addSpacer(2000, 2000, QSizePolicy_Policy_Expanding, QSizePolicy_Policy_Expanding);

// Устанавливаем разметку на форму
$widget->setLayout($vboxlayout);

// Показываем форму
$widget->show();

$app->exec();
comments powered by HyperComments