Bawię się programowaniem od wielu lat, ale layoutów w PyQt nie mogę załapać. Ani w Qt Designerze, ani programowo. Mówią, że to bardzo proste. Do rzeczy. Mam taki program:
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"), 4, 0, 1, 2)
glay.addWidget(QLabel("4"), 4, 2, 1, 3)
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_())
Zależy mi na tym, aby komponenty 3 i 4 miały wysokość 2 wierszy podczas, gdy 1 i 2 wysokość np. 6. Dobrze by było, aby przy powiększaniu programu, tylko komponenty 1 i 2 zmieniały wysokość lub zachowane byłyby proporcje wysokości.