如何将信号附加到qPixmap? 我用C++ Qt创建一个应用程序,我想加载多个图像。我想附加一个信号到每个图像,以便我可以启用或禁用它们之后

如何将信号附加到qPixmap? 我用C++ Qt创建一个应用程序,我想加载多个图像。我想附加一个信号到每个图像,以便我可以启用或禁用它们之后,c++,visual-studio-2010,qt,qt4,C++,Visual Studio 2010,Qt,Qt4,有什么帮助吗 编辑1: imageDlg = new QFileDialog(); imageList = imageDlg->getOpenFileNames(this, tr("Open Document"), QDir::currentPath(), tr("Image Files (*.png *.jpg);;All files (

有什么帮助吗

编辑1:

imageDlg = new QFileDialog();
imageList =  imageDlg->getOpenFileNames(this,
                         tr("Open Document"),
                         QDir::currentPath(),
                         tr("Image Files (*.png *.jpg);;All files (*.*)"));


QString imageName;
int x = -50;
int y = -50;
int n = 1;
double size = imageList.size();

if(imageList.isEmpty())
    return;

scene->clear();
setCursor(Qt::WaitCursor);


foreach(imageName,imageList)
{
    double val = (n/size)*100;
    ui->progressBar->setValue((int)val);


    image.load(imageName,"4",Qt::AutoColor);

    image = image.scaled(100,100,Qt::KeepAspectRatio,Qt::FastTransformation);
    imageNames.push_back(imageName.toStdString());

   // scene->setSceneRect(x,y,100,100);
    item = scene->addPixmap(image);
    item->setPos(x,y);
    x = x + 110;

    if(n%4 == 0)
    {
        x = -50;
        y = y + 90;
    }

    n++;
}

//ui->label_2->setText(strcat("10","image(s) loaded successfully"));
setCursor(Qt::ArrowCursor);
ui->imageGraphicsView->setScene(scene);

您应该存储从以下位置返回的
QGraphicsPixmapItem*
指针:

scene->addPixmap();
(例如,使用
QList
或您选择的其他容器。)

这些是在场景中显示的对象。您可以通过这些指针更改它们的外观、显示或隐藏它们、更改它们的不透明度等

有关如何操作这些项目的详细信息,请参阅文档

QGraphicsItem
没有继承自
QObject
,它没有信号或插槽(从它派生的类也没有)。如果要处理鼠标事件,则需要创建自定义图形项(例如从
QGraphicsPixmapItem
派生),并重新实现感兴趣的事件处理函数


查看示例,获取如何处理图形项目的鼠标事件的示例。

图像不能“启用”或“禁用”。不过,显示图像的小部件可以显示/隐藏。这就是你的意思吗?我只想得到图像,然后我可以将其从图像列表中删除或使其淡出,等等。请发布代码的相关部分。图像不能显示自身,它需要一个直接或间接的小部件。您想做什么完全取决于您如何显示图像,我们对此一无所知。谢谢您的回答,但是如何附加信号,以便当我单击图像时可以返回它。已更新。不能将信号“附加”到对象。您可以将插槽连接到对象的信号,但如果对象尚未发出该信号(或没有该插槽),则无法“打包”。