Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QGridLayout的行跨度未按预期工作_C++_Qt4_Qgridlayout - Fatal编程技术网

C++ QGridLayout的行跨度未按预期工作

C++ QGridLayout的行跨度未按预期工作,c++,qt4,qgridlayout,C++,Qt4,Qgridlayout,以下是如何绘制跨越两列的按钮: #include <QtGui> int main(int argv, char **args) { QApplication app(argv, args); QPushButton *foo = new QPushButton("foo"); QPushButton *bar = new QPushButton("bar"); QPushButton *baz = new QPushButton("baz");

以下是如何绘制跨越两列的按钮:

#include <QtGui>

int main(int argv, char **args)
{
    QApplication app(argv, args);

    QPushButton *foo = new QPushButton("foo");
    QPushButton *bar = new QPushButton("bar");
    QPushButton *baz = new QPushButton("baz");

    QGridLayout *layout = new QGridLayout();
    layout->addWidget(foo, 0, 0);
    layout->addWidget(bar, 0, 1);
    layout->addWidget(baz, 1, 0, 1, 2); // span 2 columns

    QWidget window;
    window.setLayout(layout);
    window.setWindowTitle("test");
    window.show();

    return app.exec();
}
以下是我得到的:


您的布局很好,baz按钮跨越两行。问题是它没有使用所有可用空间。您必须将按钮的垂直调整大小策略从固定更改为最小扩展。

我添加了以下内容,之后一切正常:

 foo->setSizePolicy(QSizePolicy::MinimumExpanding,
                    QSizePolicy::MinimumExpanding);
 bar->setSizePolicy(QSizePolicy::MinimumExpanding,
                    QSizePolicy::MinimumExpanding);
 baz->setSizePolicy(QSizePolicy::MinimumExpanding,
                    QSizePolicy::MinimumExpanding);
()

 foo->setSizePolicy(QSizePolicy::MinimumExpanding,
                    QSizePolicy::MinimumExpanding);
 bar->setSizePolicy(QSizePolicy::MinimumExpanding,
                    QSizePolicy::MinimumExpanding);
 baz->setSizePolicy(QSizePolicy::MinimumExpanding,
                    QSizePolicy::MinimumExpanding);