根据 QMainWindow 的大小调整 QWebView 和 QMessagebox 的大小

Posted

技术标签:

【中文标题】根据 QMainWindow 的大小调整 QWebView 和 QMessagebox 的大小【英文标题】:Resize a QWebView and a QMessagebox according to the QMainWindow's size 【发布时间】:2016-03-30 12:51:19 【问题描述】:

我是 QT 的新手。我为 Windows 创建了一个应用程序,其中包含一个 QWebView 和一个 QMessageBox。我想根据我的QMainwindow 的大小调整这两个的大小。例如,如果主窗口的大小是300*200,那么QWebViewQMessageBox 的大小应该相同。另外,我希望能够在运行我的应用程序时调整它的大小。

谁能告诉我该怎么做?

【问题讨论】:

【参考方案1】:

首先,我认为您应该将您的QMessageBox 和您的QWebView 子小部件设为您的QMainWindow。你的.cpp 文件中应该有这样的内容:

MyApp::MyApp(QWidget *parent)
    : QMainWindow(parent)

    mView = new QWebView(this);
    mMessageBox = new QMessageBox(this);
    // some other code

带有mViewmMessageBox .h 文件的私有元素。

对于大小,如果您不指定任何内容,您应该可以根据需要调整大小。或者如果你想尝试固定大小,只需添加这一行而不是 //some other code

this->setFixedSize(300,200);

【讨论】:

我使用 design(mainwindow.ui) 添加了 QWebView 和 QMessageBox。他们的任何方法也是如此,我可以使用它来动态设置这些东西。 我不明白:你在哪里使用 QMessageBox 和 QWebView?直接在您的.ui 文件中? 在 QT .ui 文件中。使用拖放我创建了 webview 几何 ((0*0),(500,600)) 并使用 ui->webview->load(URL) 我正在加载 URL。现在网页已加载到 QWebView 上。但是当我重新调整正在运行的应用程序的大小时。 QwebView 大小保持不变。那么有什么方法可以在运行时重新调整 QwebView 的大小。 嗯,好的,我明白了。您需要为小部件定义布局。见here :) 我尝试了示例并且工作正常。我们可以使用 QT Designer 实现相同的功能吗?我尝试了很多,但仍然无法在 QT 设计器中找到解决方案。

以上是关于根据 QMainWindow 的大小调整 QWebView 和 QMessagebox 的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QMainWindow 调整大小事件传递给 QMainWindow 中包含的 QGLWidget?

Qt:为啥在 QMainWindow 中添加状态栏会影响大小调整?

与 QMainWindow 的 GUI 命令交互时,QDockWidget 无法正确调整大小

如何调整 QMainWindow 的大小以适合具有 setVerticalHeaderLabels 的 QTableWidget

QMainWindow :根据屏幕大小设置小部件大小

如何在没有中间绘制的情况下调整 QWidget 的大小