2011-07-28 3 views
2

위젯의 좌표가 어떻게 도착했는지 알아 내려고 노력했습니다. Qt 문서에서이 작업이 어떻게 수행되는지 궁금합니다. QGridLayout 좌표계

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(); 

어떻게 저자는 그/그녀가 직교 비행기에서 지식을 사용 했습니까, 위의 좌표에 도착 했습니까?

+1

을 생각할 수 있습니다. 나는. x는 왼쪽에서 오른쪽으로, y는 위에서 아래로 이어집니다. 첫 번째 숫자 매개 변수는 Y 좌표이고, 두 번째 숫자는 X 좌표입니다. 네 개의 숫자 매개 변수가있는 경우 세 번째 매개 변수는 Y 방향의 스트레치이고 네 번째 매개 변수는 X 방향의 스트레치입니다. OrcunC가 제안한 것처럼 행/열 (예 : 테이블보기)을 생각할 수도 있습니다. –

답변

4

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

QGridLayout :: addWidget에는 두 가지 형식이 있습니다.
제 :

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

는 행의 셀 격자 열에 제공된 위젯을 추가한다. fromColumn가 ROWSPAN 행과 columnSpan 열을 걸쳐

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

세포가 fromRow에서 시작됩니다 :
두 번째.

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. 

참조 : 당신은 역 Y 축과 직교 시스템으로의 qt doc

관련 문제