Question: Although [Qt's docs](http://qt-project.org/doc/qt-4.8/application-windows.html#window-geometry) indicate that these two functions are different (the first doesn't include the frame) no matter what widget I choose - including the main window of my application - `someWidget->frameGeometry().height()` always returns the same value as `someWidget->geometry.height()`.

What am I missing here?

Answer: 
I think, you don't give enough time to widget to be painted. There is little example:

```
#include <QApplication>
#include <QMainWindow>
#include <QDebug>

class MainWindow : public QMainWindow
{
public:
    MainWindow() {
        startTimer(500);
    }

    void timerEvent(QTimerEvent *e) {
        // Here values are different
        qDebug() << geometry().height() << frameGeometry().height();
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    MainWindow mainWin;
    mainWin.show();

    // Here values are equals
    qDebug() << mainWin.geometry().height() << mainWin.frameGeometry().height();

    return app.exec();
}

```

First debug output will produce the same values for `geometry` and `frameGeometry`, but the second (in `timerEvent`) will produce different.
The QWidget class cannot have a frame. For example, QWidget doesn't have a frame, but QFrame has a frame.