Значит так. Вот тестовый код.
testsize.h:C++ (Qt)
#ifndef TESTSIZE_H
#define TESTSIZE_H
#include<QtGui>
class TestMain : public QMainWindow
{
Q_OBJECT
public:
TestMain() : QMainWindow(0)
{}
virtual QSize sizeHint() const
{
return QSize(1000,750);
}
};
#endif
testsize.cpp:C++ (Qt)
#include<QtGui>
#include "testsize.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv);
TestMain tst;
//tst.resize(tst.sizeHint()); // hack
qDebug()<<"x = "<<tst.width()<<", y = "<<tst.height();
tst.show();
return app.exec();
}
Это рисует окно размером
860x710 и выводит в консоль такое вот сообщение: «
x = 640, y = 480».
Если раскомментировать строчку, помеченную как хак, все работает нормально — сообщение «
x = 1000, y = 750» и размеры окна примерно
1010х780 (за счет полей/заголовка). Но я не уверен, что подобный хак приемлем и не вызовет других проблем.
И вообще все это очень похоже на баг Qt.
А посему.
Просьба всем, кто это читает, откомпилировать данный код на других (отличных от 4.4.1) версиях Qt, дабы проверить, не изменится ли сие поведение.
P.S. (
админам форума): Если я прав, и это действительно баг Qt, тему, наверное, лучше перенести из новичкового форума в раздел GUI (думаю, способы борьбы с багами интересны не только начинающим)...