【问题标题】:Is there anyway to add a widget and set its geometry on a qvboxlayout?无论如何要添加一个小部件并在 qvboxlayout 上设置它的几何形状?
【发布时间】:2020-11-07 22:23:30
【问题描述】:

创建 qboxlayout 时,添加到它的任何小部件都会在其布局中,我创建一个小部件并设置其几何图形,然后添加到小部件,几何图形不起作用。 这是代码:

QVBoxLayout *layout = new QVBoxLayout(centralWidget);
QWidget *widget1 = new QWidget();
QWidget *widget2 = new QWidget();
layout->addWidget(widget1);
layout->addWidget(widget2);
QWidget *widget3 = new QWidget();
widget3->setGeometry(0, 0, 100, 100);
layout->addWidget(widget3); 

这就是我想要实现的

【问题讨论】:

  • 要么您控制小部件的几何形状布局,这就是布局存在的原因。你不能同时拥有它。
  • @G.M.我怎么能用另一种方式来实现呢?
  • @opsky,我不确定你的问题,但只是通过查看图像:而不是在点击时添加(构造/设置父级)小部件,您可以简单地添加小部件到您的QBoxLayout 变量并在必要时调用hide() / show()

标签: c++ qt qwidget


【解决方案1】:

我不确定是否完全理解您的问题,但如果您想在布局中定义小部件的大小,您可以尝试widget3->setFixedSize(..)。这应该设置小部件的最大和最小尺寸。

但是,位置仍将由布局管理。

要掌握仓位,您可以在addWidget() 函数中使用Qt::Alignment 标志。

否则,如果您真的想直接使用几何图形,您应该将小部件添加到布局中,而只需创建 widget3 并将 centralWidget 作为父级。

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 1970-01-01
    • 2018-10-30
    • 2021-01-02
    • 1970-01-01
    • 2021-02-16
    • 2013-09-02
    • 2011-01-07
    • 2012-05-24
    相关资源
    最近更新 更多