1

メインウィンドウ内でも最大化されたミゼットを使用して、アプリを最大化して起動しようとしています。また、メインウィンドウのサイズ変更に応答するウィジェットが必要です。いくつかのことを試しましたが、正しく機能しませんでした。何か案が?

ありがとう

ここに画像の説明を入力してください

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //this->setGeometry(50,50, 1280, 768);
    setWindowState(Qt::WindowMaximized);
    //MainWindow::showMaximized();
    m_pWebView = new QWebView(this);
    //set position and size
    m_pWebView->setGeometry(0,0,this->width(), this->height());
    m_pWebView->load(QUrl("http://csm.nathan"));
    //m_pWebView->show();
}

MainWindow::~MainWindow()
{
    delete ui;
}
4

1 に答える 1

4

通常、QtCreatorで新しいプロジェクトを作成するときは、QMainWindowに「centralWidget」が必要です。

必ずQGridLayoutを使用してください。

this->centralWidget()->setLayout(new QGridLayout);

次に、QWebViewをこのウィジェットのレイアウトに追加します。

this->centralWidget()->layout()->addWidget(m_pWebView);

WebViewがグリッド内の唯一の要素である限り、これでうまくいくはずです。

もう1つの解決策は、QtDesignerを使用することです。

  • まず、ウィンドウ内にWebビューまたはその他のウィジェットを追加します
  • 次に、ウィンドウの背景をクリックします
  • 次に、[グリッド内のレイアウト]ボタンをクリックします

これはまったく同じように機能しますが、.cppファイルではなく.uiファイルに保存されます。

于 2012-11-23T12:37:37.817 に答える