QGridLayout의 작업은 당신이 기능을 사용해야합니다이를 위해, 구조의 유형을 만드는 것입니다
:
무효 QGridLayout :: 개의 addWidget (는 QWidget * 위젯, INT fromRow, INT fromColumn, INT ROWSPAN을 , int columnSpan, Qt :: Alignment alignment = 0)
이것은 오버로드 된 함수입니다.
이 버전은 셀 격자에 주어진 위젯을 여러 행/열에 걸쳐 추가합니다. 셀은 fromRow, fromrowSpan rows 및 columnSpan 열의 열에서 시작됩니다. 위젯은 주어진 정렬을 갖습니다.
rowSpan 및/또는 columnSpan이 -1 인 경우 위젯은 아래쪽 및/또는 오른쪽 가장자리로 각각 까지 확장됩니다.
예 :
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
app = QApplication(sys.argv)
w = QWidget()
glay = QGridLayout(w)
glay.addWidget(QLabel("1"), 0, 0)
glay.addWidget(QLabel("2"), 0, 1, 1, 3)
glay.addWidget(QLabel("3"), 1, 0, 1, 2)
glay.addWidget(QLabel("4"), 1, 2, 1, 2)
qsrand(QTime.currentTime().msec())
for label in w.findChildren(QLabel):
color = QColor(qrand() % 256, qrand() % 256, qrand() % 256)
label.setStyleSheet('.QLabel{{background: rgb({}, {}, {});}}'.format(color.red(), color.green(), color.blue()))
w.show()
sys.exit(app.exec_())
아주 좋은. (회사 보안 정책으로 인해 스냅 샷을 볼 수는 없지만) 호기심에서 : 3 개의 열이있는 그리드도 그렇게하지 않겠습니까? (의미 : 레이블 "2"는 2 열, 레이블 "4"는 1 열을 나타냅니다.) – Scheff
질문의 저자가 제공 한 다이어그램에 따르면 레이블 1은 레이블 2보다 가중치가 낮아야하며 레이블 3 및 라벨 4; label3은 label 4와 같은 가중치를 가지고 있으므로, 하나의 해법은 label이 다음과 같은 가중치를 갖는다는 것입니다 : 'label1 = 1','label2 = 3','label3 = 2' 그리고'label4 = 3' – eyllanesc
OK. 흠. 레이아웃을 위해 가중치와 같은 것을 사용할 가능성이 없었습니까? (나는 이것이 Qt로 바꾸기 전에 내가 사용했던'GtkTable'과 대략 차이가 있기 때문에 이것을 대략 기억합니다.) – Scheff