我正在尝试使用qt和qt设计器创建一个简单的全屏webview,其中包含行编辑和上面的按钮,以创建一个非常简单的浏览器。
问题是布局不希望扩展以填充所有可用空间。我似乎认为我错过了一些非常简单的东西,但我似乎无法弄明白。
以下是我的布局概述
<MainWindow>
<GridView>
<VBoxLayout>
<HBoxLayout>
<lineEdit /><PushButton />
</HBoxLayout>
<WebView />
</VBoxLayout>
</GridView>
</MainWindow>
以下是MainWindow类的代码
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->lineEdit->showFullScreen();
ui->pushButton->showFullScreen();
ui->webView->load(QUrl("http://google.com"));
ui->webView->showFullScreen();
}
这是主要代码
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.showMaximized();
return a.exec();
}
看起来像这样,而不是webview和lineedit填充整个空间
无论如何在Qt中这样做,我会认为这是一个标准的事情。
非常感谢提前!
答案 0 :(得分:0)
我认为你必须直接用上面的VBoxLayout替换GridView。 您使用的网格视图到底是什么?
<MainWindow>
<VBoxLayout>
<HBoxLayout>
<lineEdit /><PushButton />
</HBoxLayout>
<WebView />
</VBoxLayout>
</MainWindow>
答案 1 :(得分:0)
确保您的对象属性“sizePolicy”设置为Maximum,“maximumSize”为16777215,然后w.showFullscreen应该工作
答案 2 :(得分:0)
如果您希望窗口填满整个屏幕,隐藏任务栏和标题栏,则应替换为:
w.showMaximized();
用这个:
w.showFullScreen();
如果您希望您的行编辑和Web视图窗口小部件填充包含它们的窗口,“全屏”并不意味着您的想法。您的问题可能与您在设计师中的布局有关,而且我们在原始帖子中没有足够的信息来正确诊断它。鉴于您的UI在这一点上非常简单,最简单的方法可能是打破所有布局并重新开始。
无论你想要什么,你绝对不应该在你的行编辑,按钮或网页视图上调用showFullScreen()
。
答案 3 :(得分:0)
我怀疑问题是你在父小部件中设置了BoxLayout ,而不是将父小部件设置为使用BoxLayout。在Qt Designer中,您应该能够右键单击父窗口小部件并设置布局,它将按您的需要进行扩展。如果您只是从工具栏中将BoxLayout添加到窗口小部件,它将不会自动展开以匹配其父窗口。
有关详细信息,请参阅此链接:http://embrisk.com/notes/qt_resize.html