Вот задумался над тем, как задать начальный размер для QDockWidget. Не всегда хочется переопределять sizeHint().
Получился такой хак, позволяющий задать размер для нижнего дока, может кому пригодится:
#include <../src/gui/widgets/qmainwindowlayout_p.h>
MainForm::MainForm() : QMainWindow()
{
setupUi(this);
QMainWindowLayout* mwl = 0;
const QObjectList& list = children();
for (int i=0; i<list.size(); i++)
{
QObject* o = list.at(i);
if (qstrcmp(o->metaObject()->className(), "QMainWindowLayout") == 0)
{
mwl = (QMainWindowLayout*)o;
break;
}
}
if (mwl)
{
QDockAreaLayout& dal = mwl->layoutState.dockAreaLayout;
dal.docks[QInternal::BottomDock].rect = QRect(0, 0, 0, 100);
}
}
Да, код написан на Qt 4.5.1