view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);设置完之后还是有空白
时间: 2024-02-02 09:04:50 浏览: 66
如果仍然存在空白,可能是因为父窗口的布局方式或其他控件的布局方式导致的。在这种情况下,可以使用QSpacerItem来填充空白。
以下是一个示例代码:
```cpp
#include <QGraphicsView>
#include <QGridLayout>
#include <QWidget>
#include <QSpacerItem>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Create a QGraphicsView object
QGraphicsView *view = new QGraphicsView();
// Create a QWidget object and set its layout to QGridLayout
QWidget *widget = new QWidget();
QGridLayout *layout = new QGridLayout(widget);
widget->setLayout(layout);
// Add the QGraphicsView to the layout
layout->addWidget(view, 0, 0);
// Add a QSpacerItem to fill the remaining space
QSpacerItem *spacer = new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
layout->addItem(spacer, 1, 0);
// Set the widget as the main window
widget->show();
return app.exec();
}
```
在这个示例中,我们添加了一个QSpacerItem来填充剩余空间。QSpacerItem的SizePolicy设置为MinimumExpanding,这样它可以自动扩展以填充空白。另外,我们将QSpacerItem添加到第2行第1列的位置,这样它就可以填充剩余空间。
这样,QGraphicsView就可以占据整个单元格,没有空白了。
阅读全文