Qt WindowMaximize, не меняя геометрию (C ++) - PullRequest
1 голос
/ 30 июля 2011

Итак, я делаю веб-браузер своим первым проектом Qt (удивительно!), И мне интересно, почему вызов setWindowState(Qt::WindowMaximized) не меняет геометрию окна.У меня есть этот код:

Из mainwindow.h:

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
private:
    Ui::MainWindow *ui;
};

Из mainwindow.cpp:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // this->geometry() is the same here...
    setWindowState(Qt::WindowMaximized);
    ui->webView->setGeometry(0, 60, geometry().width(), geometry().height()-60);
    // ...as it is here.
}

Как вы можете сказать, япопытка запустить приложение с развернутым окном и QWebView также развернуто.По сути, всякий раз, когда изменяется главное окно, я также хочу вызывать ui->webView->setGeometry с высотой и шириной обновления.Но MainWindow::geometry, похоже, не обновляется.Что я делаю не так?

1 Ответ

1 голос
/ 30 июля 2011

Мне бы пришлось перепроверить, но ваша геометрия может не обновляться должным образом, пока ваше главное окно не получит событие show.

Однако я бы посоветовал вам поместить свой QWebView в макет, а не пытаться изменять его вручную каждый раз, когда ваше главное окно меняет размер.

...