// class ChatWidget --> ChatWidget::ChatWidget():base_pixmap("image/system/chatface/base.png") { setFlags(ItemIsFocusable); setAcceptHoverEvents(true); setAcceptedMouseButtons(Qt::LeftButton); base = new QGraphicsRectItem(QRectF(base_pixmap.rect()), this); QPushButton *returnButton, *chatfaceButton, *easytextButton; returnButton=addButton("returnBt",-1); chatfaceButton=addButton("chatfaceBt",24); easytextButton=addButton("easytextBt",48+1); chat_face_board = new MyPixmapItem(QPixmap("image/system/chatface/faceboard.png"),this); chat_face_board->setSize(160,180); chat_face_board->setPos(-160 + 74,-180-1);// 24+24+24+2=74 chat_face_board->setZValue(1); chat_face_board->setVisible(false); chat_face_board->itemName="faceboard"; easy_text_board=new MyPixmapItem(QPixmap("image/system/chatface/easytextboard.png"),this); easy_text_board->setSize(180,222); easy_text_board->setPos(-180 + 74,-222-1); easy_text_board->setZValue(1); easy_text_board->setVisible(false); easy_text_board->itemName="easytextboard"; connect (chat_face_board,SIGNAL(my_pixmap_item_msg(QString)),this,SIGNAL(chat_widget_msg(QString))); connect (easy_text_board,SIGNAL(my_pixmap_item_msg(QString)),this,SIGNAL(chat_widget_msg(QString))); connect(chatfaceButton, SIGNAL(clicked()), this, SLOT(showFaceBoard())); connect(easytextButton, SIGNAL(clicked()), this, SLOT(showEasyTextBoard())); connect(returnButton, SIGNAL(clicked()), this, SLOT(sendText())); }
void MyPixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { setVisible(false); QString msg = ""; int result = mouseCanClick(event->pos().x(), event->pos().y()); if (result == -1) return; if (this->itemName == "faceboard") msg = "<#" + QString::number(result + 1) + "#>"; else if (this->itemName == "easytextboard") msg = easytext.at(result); emit my_pixmap_item_msg(msg); }