Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
Image Qt创建者标签值_Image_Qt_Label - Fatal编程技术网

Image Qt创建者标签值

Image Qt创建者标签值,image,qt,label,Image,Qt,Label,我目前面临以下问题: 我有64个标签。标签1一直到标签64。 我还有一个int I。 “i”也从1到64 我想知道,当I==1时,Label_1将显示一个图像。如果i==2,则标签_2应显示该图像,依此类推 目前,我会使用以下方法: if(i==1) { QPixmap pix(“…”); ui->label_1->setPixmap(pix); } 如果(i==2) { QPixmap pix(“…”); ui->label_2->setPixmap(pix); } 如果(i==3) { Q

我目前面临以下问题: 我有64个标签。标签1一直到标签64。 我还有一个int I。 “i”也从1到64

我想知道,当I==1时,Label_1将显示一个图像。如果i==2,则标签_2应显示该图像,依此类推

目前,我会使用以下方法:

if(i==1)
{
QPixmap pix(“…”);
ui->label_1->setPixmap(pix);
}
如果(i==2)
{
QPixmap pix(“…”);
ui->label_2->setPixmap(pix);
}
如果(i==3)
{
QPixmap pix(“…”);
ui->label_3->setPixmap(pix);
}

您可以存储
QLabel
s的列表

QList<QLabel*> labels;
labels.at(i)->setPixmap(pix)
根据您的具体情况,您可能会使用更棘手的解决方案。例如,如果所有标签都存储在位置1到64的QVBoxLayout中,则可以按如下方式访问标签i:

QVBoxLayout *layout = ...;
QLabel *label = qobject_cast<QWidget*> (layout->itemAt(i)->widget ());
if (label) // should be true if assumption is correct
    label->setPixmap(pix);
QVBoxLayout*布局=。。。;
QLabel*label=qobject_cast(布局->项目(i)->widget());
if(label)//如果假设正确,则应为true
标签->设置像素点贴图(像素点);
您还可以使用方法2初始化方法1的列表


有关更多信息,请参阅Qt文档。

作为旁注:在这种情况下,switch语句可能更合适。
QVBoxLayout *layout = ...;
QLabel *label = qobject_cast<QWidget*> (layout->itemAt(i)->widget ());
if (label) // should be true if assumption is correct
    label->setPixmap(pix);