QWidget *widget = new QWidget; widget->show(); qDebug() << widget->width() << "," << widget->height(); qDebug() << widget->sizeHint().width() << "," << widget->sizeHint().height(); //output: //1009 , 520 //-1 , –1
輸出結果中第二行:sizeHint() 返回的是一個無效的 QSize,由於 widget 沒有佈局。函數
例2:
QWidget *widget = new QWidget; QHBoxLayout *layout = new QHBoxLayout; QPushButton *button = new QPushButton("Ggicci"); layout->addWidget(button); widget->setLayout(layout); widget->show(); qDebug() << widget->width() << "," << widget->height(); qDebug() << widget->sizeHint().width() << "," << widget->sizeHint().height(); qDebug() << button->width() << "," << button->height();
1: //output:
2: //112 , 45
3: //97 , 45
4: //90 , 23
輸出結果中第一行:widget 的實際尺寸 (112, 45);輸出結果中第二行:sizeHint() 返回 layout 的首選尺寸(97,45)供 widget 參考;輸出結果中第三行:中間 button 的實際大小;從輸出結果中能夠證實以上說過的兩點:1) 在 widget 有 layout 的狀況下,其 sizeHint() 函數返回的是有效值做爲其自身實際尺寸的參考;2) sizeHint() 返回的值並不必定會做爲 widget 的實際尺寸,由於 widget 的尺寸的決定還有其它因素做用;