Система координат QGridLayout - PullRequest
2 голосов
/ 28 июля 2011

Я пытался выяснить, как получаются координаты виджета. Например, в документации по qt, мне интересно, как это сделать.

Buttons example

QGridLayout *layout = new QGridLayout;
     layout->addWidget(button1, 0, 0);
     layout->addWidget(button2, 0, 1);
     layout->addWidget(button3, 1, 0, 1, 2);
     layout->addWidget(button4, 2, 0);
     layout->addWidget(button5, 2, 1);

     window->setLayout(layout);
     window->show();

Как автор пришел к указанным выше координатам, использовал ли он / она знания с декартовой плоскости?

Ответы [ 2 ]

4 голосов
/ 28 июля 2011

QGridLayout использует простую логику строк / столбцов. Номера строк и столбцов начинаются с 0, как обычно.

QGridLayout *layout = new QGridLayout;

layout->addWidget(button1, 0, 0); //Add to row 0 column 0
layout->addWidget(button2, 0, 1); //Add to row 0 column 1

layout->addWidget(button3, 1, 0, 1, 2); //Add to row 1 column 0 and span to row 1 column 1


layout->addWidget(button4, 2, 0);//Add to row 2 column 0
layout->addWidget(button5, 2, 1);//Add to row 2 column 1

Это то, что вы спрашиваете?

1 голос
/ 10 сентября 2015

QGridLayout :: addWidget имеет две разные формы.
Первый:

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

Добавляет данный виджет в сетку ячеек в строке, столбце.
Второй:

void QGridLayout::addWidget(QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan)

Ячейка будет начинаться с fromRow, fromColumn, охватывающего строки rowSpan и columnSpan столбцов.

layout->addWidget(button2, 0, 1);//button2 will be added to row 0, column 1
layout->addWidget(button3, 1, 0, 1, 2);//button3 will be added to row 1, column 0 spanning 1 row and 2 columns.

Ссылка: qt doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...