杉原さん

超亀レスなのでもう解決されていると思いますが、
QGraphicsPixmapItemを使うサンプルを書いてみました。(imageは適当に置いてくださいまし)
https://gist.github.com/Atsushi4/fd0b42aa8f104afa1ca78306ad4f0c6e 

QGraphicsItem::ItemIsFocusable フラグを立てておいて、
QGraphicsScene::focusItemChanged でアイテムのクリックを検知しています。

他にはQGraphicsPixmapItemを継承して mousePressEvent からシグナルを出すとか(イマイチ)、
QGraphicsViewを継承してmousePressEvent で itemAt(event->pos()) を使って取るとか、
方法は色々あって何がベストかは自分にはちょっと分からないです(;^_^A

個人的にはSceneを複数のビューに違う表示で見せるとか、
(地図のような)移動・ズームをするとか、
中のアイテムをインタラクティブに移動・変形するとか、
そんな時にQGraphicsViewを使うかなーというイメージです。

今回のサンプルくらいの中身だと、
QWidgetベースでQGridLayout置いてQLabelにsetPixmapして並べて、
QWidget::mousePressEvent で childAt(event->pos()) でもいいかなーと思います。
(余談ですがちょうどFlow Layoutのサンプルもありますネ https://doc.qt.io/qt-5.9/qtwidgets-layouts-flowlayout-example.html)

乱文にてご容赦くださいまし。

□■━━━━━━━━━━━━━━━━━
  山本 篤史
  e-mail: atsushi.yamyam@gmail.com
 ━━━━━━━━━━━━━━━━━■□


2019年5月22日(水) 21:24 SUGIHARA <sugihara@circletek.jp>:
お世話になります・杉原@CircleTekです

すみません
タイトルを訂正して再送いたします


Qt5.12.3(msvc2017_64) で複数の画像をタイル型式に並べて表示する方法とその
画像をマウスで選択した時にどの(何番目の)画像を選択したのかを調べる方法に
ついて教えて下さい

QStringList jpegList に複数(例えば30枚)の画像ファイル名が格納されてい
ます
此れを4列8行のように画像を並べて表示したいのですが

graphicsView を額縁
QGraphicsScene をキャンバスと考えて

QGraphicsScene に pixmap 画像を登録、graphicsView を画像枚数分並べてその
中に QGraphicsScene を set していくのがよいのか

pixmap 画像を
QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pixmap); として
item を画像枚数分作成して QGraphicsScene に addItem して graphicsView に 
QGraphicsScene を set していくのがよいのでしょうか

因みに以下のようなソースで 一列ですが後の方法で画像の表示は出来たのです
がはたしてこの方法で良いのか、
この方法でどうすればマウスで選択した時の情報が得られるのか。。。


{// Jpeg 表示

    QString FName;
    QStringList jpegList;
    int w=  640 ;
    int h = 480;
    int i;

    QPixmap pixmap;
    QImage image(w,h,QImage::Format_ARGB32);

    myScene.clear();
    for(i=0; i < jpegList.count() ;i++){
        image.isNull();
        image.load(jpegList.at(i));
        pixmap = QPixmap::fromImage(image);
        pixmap = pixmap.scaled(340,240, Qt::KeepAspectRatio, Qt::
FastTransformation);
        QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pixmap);
        item->setX(0);
        item->setY(i*240);
        item->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::
ItemIsSelectable);
        myScene.addItem(item);
        ui->graphicsView->setScene(&myScene);
       }

    this->update();
}


宜しくご教示下さい

--
= FROM =================================================================
     _/_/_/ _/_/_/_/_/  _/_/_/_/     サークルテック株式会社
  _/           _/          _/               CircleTek.JP
 _/           _/          _/                 杉原 利彦
  _/_/_/     _/      _/_/_/        E-mail address:sugihara@circletek.jp
                                                http://www.circletek.jp
                                     TEL 0848-60-0102, FAX 0848-60-0078
========================================================================
_______________________________________________
Qt-users mailing list
Qt-users@qt-users.jp
http://qt-users.jp/mailman/listinfo/qt-users