C++ 使用Qt构建全屏布局
我正在尝试使用qt和qt设计器来创建一个简单的全屏webview,上面有一个行编辑和一个按钮来创建一个真正简单的浏览器 问题是布局不希望扩展以填充所有可用空间。我似乎觉得我错过了一些非常简单的东西,但我就是想不出来 下面是我的布局概述C++ 使用Qt构建全屏布局,c++,qt,user-interface,C++,Qt,User Interface,我正在尝试使用qt和qt设计器来创建一个简单的全屏webview,上面有一个行编辑和一个按钮来创建一个真正简单的浏览器 问题是布局不希望扩展以填充所有可用空间。我似乎觉得我错过了一些非常简单的东西,但我就是想不出来 下面是我的布局概述 <MainWindow> <GridView> <VBoxLayout> <HBoxLayout> <li
<MainWindow>
<GridView>
<VBoxLayout>
<HBoxLayout>
<lineEdit /><PushButton />
</HBoxLayout>
<WebView />
</VBoxLayout>
</GridView>
</MainWindow>
这是主要代码
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.showMaximized();
return a.exec();
}
它看起来像这样,而不是webview和lineedit占据了整个空间
在Qt中是否有这样做的必要,我会认为这是一个标准的事情
非常感谢 我认为您必须用正上方的VBoxLayout替换GridView。 您使用的网格视图是什么
<MainWindow>
<VBoxLayout>
<HBoxLayout>
<lineEdit /><PushButton />
</HBoxLayout>
<WebView />
</VBoxLayout>
</MainWindow>
确保将对象属性“sizePolicy”设置为最大值,“maximumSize”设置为16777215,然后w.showFullscreen应该可以工作如果您的意思是希望窗口填充整个屏幕,隐藏任务栏和标题栏,则应替换此选项:
w.showMaximized();
为此:
w.showFullScreen();
如果您的意思是希望行编辑和web视图小部件填充包含它们的窗口,“全屏”并不是指您所认为的功能。您的问题可能与designer中的布局有关,我们在您的原始帖子中没有足够的信息来正确诊断它。考虑到此时您的UI是多么简单,最简单的方法可能是打破所有布局,重新开始
无论您想要什么,您绝对不应该在行编辑、按钮或web视图上调用
showFullScreen()
。我怀疑问题在于您在父窗口小部件中设置了BoxLayout,而不是将父窗口小部件设置为使用BoxLayout。在QtDesigner中,您应该能够右键单击父窗口小部件并设置布局,它将按您的需要展开。如果您只是从工具栏向小部件添加BoxLayout,它将不会自动展开以匹配其父项
查看此链接了解更多详细信息:扩展Stephen Bell的回答(我愿意发表评论,但我缺乏声誉),因为我也花了一段时间才弄明白这一点 如果您已经完全设计了您希望全屏显示的布局,请右键单击屏幕最右侧的“主窗口”。应出现下拉列表。单击布局,然后单击栅格布局。主窗口应采用网格布局。在Qt Designer中,它不应该改变对象的位置。然而,它应该修复全屏
如果MainWindow没有布局,您的布局可能会有空白或死区而没有解释。谢谢,但我想知道是什么对象。。?主窗口或webview
w.showFullScreen();