根据 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
,那么QWebView
和QMessageBox
的大小应该相同。另外,我希望能够在运行我的应用程序时调整它的大小。
谁能告诉我该怎么做?
【问题讨论】:
【参考方案1】:首先,我认为您应该将您的QMessageBox
和您的QWebView
子小部件设为您的QMainWindow
。你的.cpp
文件中应该有这样的内容:
MyApp::MyApp(QWidget *parent)
: QMainWindow(parent)
mView = new QWebView(this);
mMessageBox = new QMessageBox(this);
// some other code
带有mView
和mMessageBox
.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