AhealthPackButton
はにドロップされますmysquare
。ここで、このボタンに値を追加したいと思います(healthPackButtonが多数あり、それらを区別できるようにしたいため)。makeDrag関数を変更して、追加のパラメーターを受け入れるようにしましたが、SIGNALが一致しなくなりました。
質問:別のクラス内のdropEventハンドラーに追加情報(=> int値)を渡すにはどうすればよいですか?
Dialog
クラス
for (int i=0; i<healthPks.size(); i++){
int value = healthPks.at(i);
QPushButton *healthPackButton = new QPushButton(title,this);
connect(healthPackButton,SIGNAL(pressed()),this,SLOT(makeDrag()));
}
void Dialog::makeDrag(){
QDrag *drag = new QDrag(this);
QMimeData *mime = new QMimeData;
mime->setText("This is a test");
drag->setMimeData(mime);
drag->start();
}
mysquare
クラス
void MySquare::dropEvent(QGraphicsSceneDragDropEvent *event){
isHealthPack=true;
int xCoord = curX/width;
int yCoord = curY/height;
int value = 0; //what's the value??
const QMimeData *mimeData = event->mimeData();
emit healthMapChanged(xCoord,yCoord,value);
update();
}