layout->setGeometry
时间: 2023-07-08 17:46:52 浏览: 158
Qt-QWidget-界面动态-跑马灯
如果您在使用 `layout->setGeometry` 函数时出现了 "too many arguments to function" 的错误,可能是因为 `layout` 对象是一个 `QHBoxLayout` 类型的指针,而 `setGeometry()` 函数不是 `QHBoxLayout` 类型的成员函数,而是 `QWidget` 类型的成员函数。
因此,您应该使用 `QWidget` 对象来调用 `setGeometry()` 函数,而不是 `QHBoxLayout` 对象。您可以使用 `QWidget` 对象的 `setLayout()` 函数来设置 `QHBoxLayout` 对象,然后使用 `QWidget` 对象来调用 `setGeometry()` 函数。例如:
```cpp
QWidget *widget = new QWidget();
QHBoxLayout *layout = new QHBoxLayout(widget);
// 添加需要放置的控件
layout->addWidget(button1);
layout->addWidget(button2);
// 设置QWidget的尺寸
widget->setGeometry(0, 0, 100, 20);
```
在这个示例中,我们创建了一个 `QWidget` 对象,并将 `QHBoxLayout` 对象设置为其布局。然后,我们向 `QHBoxLayout` 中添加了两个按钮。最后,我们使用 `QWidget` 对象来调用 `setGeometry()` 函数,以将 `QWidget` 的尺寸设置为长100宽20。
请注意,当您调用 `setLayout()` 函数时,您需要将 `QWidget` 对象作为参数传递给 `QHBoxLayout` 构造函数。这将确保 `QHBoxLayout` 对象是 `QWidget` 的子类,从而确保布局的正确显示。
阅读全文