当我运行我的程序时,它将正确显示所有内容,当我调整主窗口大小时,布局以及所有相关的小部件保持固定,而不是使用主窗口调整大小。我曾经增加我的所有小部件和listWidget方面的窗口计算机分辨率大小,但仍然这不是一个正常工作。 我使用这一个代码查找系统的高度和宽度。
QWidget widget;
widget.resize(widget.width(), widget.minimumHeight());
QRect rec = QApplication::desktop()->screenGeometry();
int h = rec.height();
int w = rec.width();
// Increasing the listwidget size
ui->listWidget->setFixedHeight(h);
ui->listWidget->setFixedWidth(w);
//increasing the button size
ui->pushButton->setFixedHeight(h0.2);
ui->pushButton->setFixedWidth(w0.2);
在此link,您会找到两个说明我问题的屏幕截图。
请解决以解决我的问题。非常感谢提前。
答案 0 :(得分:0)
使用QtCreator,您可以在设计器中右键单击父窗口小部件并添加网格布局。 这个尺寸调整了孩子们的尺寸。
答案 1 :(得分:0)
在Qt Designer中定义窗口和表单的布局时,必须事先定义表单的每个元素,以便具有工作布局。
此解决方案基于对问题的评论中提供的屏幕截图。请按照以下步骤操作:
你应该在设计师的视图中得到类似的东西(我使用黑色主题,当然你的颜色会有不同的颜色):
如果你完成了所有步骤,你应该有一个很好的大小调整窗口。
对于未来:记得整体定义你的布局,也需要在需要时使用占位符小部件,仔细阅读有关小部件大小策略的文档(有几个,你需要使用它们来完全理解每个策略)并保持请注意,Qt使用的是基于容器的方法,这种方法与.Net框架所使用的依赖于锚点概念的方法不同。
编辑:回答评论中的问题
您需要将布局添加到包含其他窗口小部件的任何窗口小部件,例如添加控件到您的组框将需要给它一个网格,水平或垂直布局,以便在调整大小时很好地扩展。再次使用间隔符和大小策略使其看起来像您想要的那样。如果您需要添加或删除控件或更改其位置,您可能需要制动布局,重新排列然后再次设置。
您还可以选择小部件组并为其指定布局,例如垂直,比另一个组并将它们设置为水平等等......然后给容器小部件提供网格布局以构建复合布局。
有无穷无尽的可能性,你只需要练习并经历反复试验......
您也可以通过编程方式完成所有操作,请查看Qt小部件文档。但是对于复杂的布局我不会这样:它有很多代码......你必须编译并运行以测试每个修改。