Image Qt创建者标签值
我目前面临以下问题: 我有64个标签。标签1一直到标签64。 我还有一个int I。 “i”也从1到64 我想知道,当I==1时,Label_1将显示一个图像。如果i==2,则标签_2应显示该图像,依此类推 目前,我会使用以下方法: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
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);