You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

chooseemojidlg.cpp 1.3 kB

8 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "chooseemojidlg.h"
  2. #include "ui_chooseemojidlg.h"
  3. #include <QMouseEvent>
  4. #include <QMovie>
  5. #include "emoji.h"
  6. ChooseEmojiDlg::ChooseEmojiDlg(QWidget *parent) :
  7. QDialog(parent),
  8. ui(new Ui::ChooseEmojiDlg)
  9. {
  10. ui->setupUi(this);
  11. setWindowFlags(Qt::Tool);
  12. setFixedSize(size());
  13. mMovie = new QMovie(this);
  14. ui->gifLabel->setMovie(mMovie);
  15. connect(ui->chooseWidget, SIGNAL(choose(int)), this, SLOT(choose(int)));
  16. connect(ui->chooseWidget, SIGNAL(choose(int)), this, SLOT(hide()));
  17. connect(ui->chooseWidget, SIGNAL(hesitate(int)), this, SLOT(hesitate(int)));
  18. }
  19. ChooseEmojiDlg::~ChooseEmojiDlg()
  20. {
  21. delete ui;
  22. }
  23. void ChooseEmojiDlg::hideEvent(QHideEvent *event)
  24. {
  25. mMovie->stop();
  26. }
  27. void ChooseEmojiDlg::hesitate(int index)
  28. {
  29. if (index == -1)
  30. {
  31. ui->hintLabel->setText("");
  32. mMovie->stop();
  33. ui->gifLabel->setText("");
  34. }
  35. else
  36. {
  37. ui->hintLabel->setText(QString(g_emojiText[index])+" "+QString(g_emojis[index]));
  38. auto gif = ":/default/res/face/"+QString::number(index+1)+".gif";
  39. mMovie->stop();
  40. mMovie->setFileName(gif);
  41. mMovie->start();
  42. }
  43. }
  44. void ChooseEmojiDlg::choose(int index)
  45. {
  46. emit choose(g_emojis[index]);
  47. }

mac下的“飞秋”大多数只是飞鸽传书协议,而且未发现令人满意的开源项目,所以基于c++与qt实现了基础的飞秋协议。

Contributors (1)