我是Qt的新手。我正在尝试使用以下布局创建一个窗口,
--------------------------
| Button1 | BUTTON2 |
| ------------------------ |
| -------图片-------- |
-------------------------
我可以使用QGridlayout创建此布局。请参阅以下代码
QPushButton *button = new QPushButton(this);
QPushButton *nextButton = new QPushButton(this);
button->setText("Select new Image");
nextButton->setText("Next Image >>");
button->setMinimumSize(100,50);
nextButton->setMaximumSize(500,50);
button->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
nextButton->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
this->centralWidget = new QWidget(this);
this->centralWidget->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
this->centralWidget->setGeometry(0,0,800,800);
QPalette Pal(palette());
Pal.setColor(QPalette::Background, Qt::black);
this->centralWidget->setAutoFillBackground(true);
this->centralWidget->setPalette(Pal);
this->layout = new QGridLayout (centralWidget);
this->layout->addWidget(button,0,0,1,1);
this->layout->addWidget(nextButton,0,1,1,1);
this->layout->addWidget(this->imageLabel,1,0,1,1);
this->layout->setRowStretch(0,1);
this->layout->setRowStretch(1,10);
但我想要的是图像应占用更多空间但图像只显示窗口的下半部分。 Please See the image 您可以看到按钮和图像之间的空间。我想删除这个空间。
我尝试使用setRowStretch,但这没有帮助。
PS:我正在使用带有Qt插件的eclipse。我做的一些选择也许是穷人。我是Qt的新手。非常感谢
答案 0 :(得分:0)
更改
这 - >&版图GT; addWidget(这 - > imageLabel,1,0,1,1);
到
这 - >&版图GT; addWidget(这 - > imageLabel,1,0,1,的 2 下,Qt的:: AlignCenter);
第五个参数是列跨度,这意味着新布局项跨越单元格(1,0)和(1,1)。 看看:addWidget。 您还希望图像居中,第6个参数是对齐参数,默认为0。
如果您还想拥有更大的图像,则应进行缩放。 (我假设你的其余代码是正确的。)
行延伸正在工作,它的作用是第一行只获得所需的最小空间,第二行占用所有其余空间,因此按钮被推到顶部: your layout