gpt4 book ai didi

c++ - QtGridLayout 表现得像 QVBoxLayout?

转载 作者:行者123 更新时间:2023-11-28 03:08:59 27 4
gpt4 key购买 nike

我在使用 QGridLayout 时遇到了一些问题。这是代码,后面是解释:

for(int i =0; i<fileCount; i++)
{
int row = 0;
int col = 0;
QString DocName = FilteredFiles.at(i).at(0);
QLabel* DocTitle = new QLabel;
DocTitle->setText(DocName);
QLabel* DocIcon = new QLabel;
if(FilteredFiles.at(i).at(2)== "WORD")
{
QPixmap Icon("C:blah/blah/blah/WordIcon.jpg");
DocIcon->setPixmap(Icon);
}
else if(FilteredFiles.at(i).at(2)== "EXCEL")
{
QPixmap Icon("C:/blah/blah/blah/ExcelIcon.png");
DocIcon->setPixmap(Icon);
}
else
{
QPixmap Icon("C:/blah/blah/blah/PpIcon.png");
DocIcon->setPixmap(Icon);
}
GridContainer->addWidget(DocIcon);
GridContainer->addWidget(DocTitle);
TopGrid->addLayout(GridContainer,row,col,1,1);
col++;
}
MainContainer->addLayout(TopGrid);

上面的代码应该制作两个 Qlabel,将图像像素映射到其中一个标签,将像素映射标签和常规标签添加到 QVBoxLayout,然后将 QVBoxLayout 添加到 QGridLayout。输出网格应该将所有内容都放在一行中,但它在一列中。有人可以解释为什么会这样吗?

enter image description here

最佳答案

我假设 GridContainer 是一个 QVBoxLayout。您正在将所有小部件添加到同一布局中。这可能是您的问题(以及您的 col 变量在 for 循环内初始化的问题,user2672165 指出了这一点)。

您可能应该在循环中创建一个新的 GridContainer 对象并将其添加到您的 TopGrid 布局中,而不是在您的 TopGrid< 中添加相同的布局 一遍又一遍的布局。

int col = 0;
int row = 0;
for(int i =0; i<fileCount; i++)
{
GridContainer = new QVBoxLayout; // create a new layout
QString DocName = FilteredFiles.at(i).at(0);
QLabel* DocTitle = new QLabel;
DocTitle->setText(DocName);
QLabel* DocIcon = new QLabel;
if(FilteredFiles.at(i).at(2)== "WORD")
{
QPixmap Icon("C:blah/blah/blah/WordIcon.jpg");
DocIcon->setPixmap(Icon);
}
else if(FilteredFiles.at(i).at(2)== "EXCEL")
{
QPixmap Icon("C:/blah/blah/blah/ExcelIcon.png");
DocIcon->setPixmap(Icon);
}
else
{
QPixmap Icon("C:/blah/blah/blah/PpIcon.png");
DocIcon->setPixmap(Icon);
}
GridContainer->addWidget(DocIcon);
GridContainer->addWidget(DocTitle);
TopGrid->addLayout(GridContainer,row,col,1,1);
col++;
}
MainContainer->addLayout(TopGrid);

关于c++ - QtGridLayout 表现得像 QVBoxLayout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18987795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com