void tst_QFormLayout::contentsRect() { QWidget w; setFrameless(&w); QFormLayout form; w.setLayout(&form); form.addRow("Label", new QPushButton(&w)); w.show(); QVERIFY(QTest::qWaitForWindowExposed(&w)); int l, t, r, b; form.getContentsMargins(&l, &t, &r, &b); QRect geom = form.geometry(); QCOMPARE(geom.adjusted(+l, +t, -r, -b), form.contentsRect()); }
void tst_QWidget_window::tst_min_max_size() { QFETCH(bool, setMinMaxSizeBeforeShow); const QSize minSize(300, 400); const QSize maxSize(1000, 500); QWidget w1; setFrameless(&w1); (new QVBoxLayout(&w1))->addWidget(new QPushButton("Test")); if (setMinMaxSizeBeforeShow) { w1.setMinimumSize(minSize); w1.setMaximumSize(maxSize); } w1.show(); if (!setMinMaxSizeBeforeShow) { w1.setMinimumSize(minSize); w1.setMaximumSize(maxSize); } QVERIFY(QTest::qWaitForWindowExposed(&w1)); QCOMPARE(w1.windowHandle()->minimumSize(),minSize); QCOMPARE(w1.windowHandle()->maximumSize(), maxSize); }
void tst_QBoxLayout::setGeometry() { QWidget toplevel; setFrameless(&toplevel); QWidget w(&toplevel); QVBoxLayout *lay = new QVBoxLayout; lay->setMargin(0); lay->setSpacing(0); QHBoxLayout *lay2 = new QHBoxLayout; QDial *dial = new QDial; lay2->addWidget(dial); lay2->setAlignment(Qt::AlignTop); lay2->setAlignment(Qt::AlignRight); lay->addLayout(lay2); w.setLayout(lay); toplevel.show(); QRect newGeom(0, 0, 70, 70); lay2->setGeometry(newGeom); QVERIFY2(newGeom.contains(dial->geometry()), "dial->geometry() should be smaller and within newGeom"); }
void tst_QLayout::geometry() { // For QWindowsStyle we know that QWidgetItem::geometry() and QWidget::geometry() // should be the same. QApplication::setStyle(QStyleFactory::create(QLatin1String("Windows"))); QWidget topLevel; setFrameless(&topLevel); QWidget w(&topLevel); QVBoxLayout layout(&w); SizeHinterFrame widget(QSize(100,100)); layout.addWidget(&widget); QLayoutItem *item = layout.itemAt(0); topLevel.show(); QApplication::processEvents(); QCOMPARE(item->geometry().size(), QSize(100,100)); widget.setMinimumSize(QSize(110,110)); QCOMPARE(item->geometry().size(), QSize(110,110)); widget.setMinimumSize(QSize(0,0)); widget.setMaximumSize(QSize(90,90)); widget.setSizeHint(QSize(100,100)); QCOMPARE(item->geometry().size(), QSize(90,90)); }