gui.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include <gui/gui.h>
  2. #include <ui_gui.h>
  3. #include <gui/recruitmentscene.h>
  4. #include <QDebug>
  5. GUI::GUI(QWidget *parent) :
  6. QMainWindow(parent, Qt::Window | Qt::FramelessWindowHint),
  7. ui_(new Ui::GUI), dx_(0), dy_(0)
  8. {
  9. ui_->setupUi(this);
  10. //rq_scene_ = new RecruitmentScene(ui_->main_content_); /// Инициализируем графическую сцену выбора юнитов
  11. //rq_scene_->show();
  12. }
  13. GUI::~GUI()
  14. {
  15. delete ui_;
  16. }
  17. QWidget* GUI::mainContentScene() {
  18. return ui_->main_content_;
  19. }
  20. void GUI::mouseMoveEvent( QMouseEvent* e ) {
  21. if( e->buttons() | Qt::LeftButton ) {
  22. QPoint pt=mapFromGlobal(QCursor::pos());
  23. QWidget* child=childAt(pt);
  24. if (child == 0) {
  25. setGeometry(pos().x() + (pt.x() - dx_ ), pos().y() + (pt.y() - dy_ ), width(), height());
  26. return;
  27. }
  28. QString cname = child->metaObject()->className();
  29. if (cname != "QPushButton" && cname != "QComboBox"){ // отключаем перетягивание при наведение на активные элементы
  30. setGeometry(pos().x() + ( pt.x() - dx_ ), pos().y() + ( pt.y() - dy_ ), width(), height());
  31. } else {
  32. dx_ = pt.x();
  33. dy_ = pt.y();
  34. }
  35. }
  36. }
  37. void GUI::mousePressEvent( QMouseEvent* e ) {
  38. if(e->button() == Qt::LeftButton) {
  39. QPoint pt = mapFromGlobal(QCursor::pos());
  40. QWidget* child=childAt(pt);
  41. if (child == 0)
  42. return;
  43. QString cname = child->metaObject()->className();
  44. if (cname == "QPushButton" || cname == "QComboBox" || cname == "QLabel")
  45. return;
  46. dx_ = pt.x();
  47. dy_ = pt.y();
  48. setCursor( Qt::OpenHandCursor );
  49. }
  50. }
  51. void GUI::mouseReleaseEvent( QMouseEvent* e ) {
  52. if( e->button() == Qt::LeftButton ) {
  53. QPoint pt=mapFromGlobal(QCursor::pos());
  54. setCursor( Qt::ArrowCursor );
  55. dx_ = pt.x();
  56. dy_ = pt.y();
  57. }
  58. }