t
tettaMay 8, 2017, 6:34 a.m.

Перенос окна

Вот по этой статье я пытался сделать так , что бы окно пересувалось, но у меня выдает дофига ошибок, помогите, что куда вписывать. Вот код заголовочного файла:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QPoint>
#include <QMainWindow>
#include <QMessageBox>
#include <QAction>
#include <QToolBar>
#include <QToolButton>
#include <QDockWidget>
#include <QLayout>
#include <QMdiArea>
#include <QMouseEvent>
#include <QStandardItemModel>
#include <QWidget>

#include "stylehelper.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT


public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();


//slots for menuBar
private slots:
    void s_file(){
        QMessageBox msg;
            msg.setText("Action");
            msg.exec();
    }
    void exit(){
        close();
    }
    void f_fsm(){
        if(this->isMaximized()){
         this->showFullScreen();
        }else{
            this->showMaximized();
        }
    }
    void about(){
        QMessageBox msg;
            msg.setText("I say about this programe now!");
            msg.exec();
    }


private:
    Ui::MainWindow *ui;

    //for toolBar(Add more toolBar)

     //oToolBar
      QToolBar *oToolBar;
      QToolButton *oToolButton;
     //tToolBar
      QToolBar *tToolBar;
      QToolButton *tToolButton;

    //mouse position

};

#endif // MAINWINDOW_H
А это реализация:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStyle>
#include <QtWidgets>
#include <QToolBar>
#include <QMenuBar>
#include <QAction>
#include <QtGui>
#include <QLineEdit>
#include <QLabel>
#include <QWidget>
#include <QTabBar>
#include <QPushButton>
#include <QMainWindow>
#include <QToolBar>
#include <QToolButton>
#include <QIcon>
#include <QDockWidget>
#include <QLayout>
#include <QStyle>
#include <QStyleHints>
#include <QGridLayout>
#include <QFileDialog>
#include <QDir>
#include <QGraphicsDropShadowEffect>
#include <QSizePolicy>
#include <QSpacerItem>
#include <QComboBox>

#include "stylehelper.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    //setting UI
      this->setWindowFlags(Qt::FramelessWindowHint);
      this->setStyleSheet(StyleHelper::getWindowStyleSheet());

   //
    QGridLayout *qgl = new QGridLayout(this);

    //close, maximize, minimize
      //close
       QPushButton *cls = new QPushButton(this);
       connect(cls, &QPushButton::clicked, this, &QWidget::close);
       cls->setStyleSheet(StyleHelper::getClsStyleSheet());
       cls->setGeometry(cls->geometry().x() + 1000 ,cls->geometry().y() + 90, cls->width() - 53, cls->height() - 9);
       cls->setIcon(QIcon("url(/icon/project.png)"));
       qgl->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding), 30, 0, 1, 2);
       qgl->addWidget(cls, 1, 0);
       qgl->addItem(new QSpacerItem(20, 40, QSizePolicy::Expanding, QSizePolicy::Minimum), 10, 10);


       ui->btn_close->setStyleSheet(StyleHelper::getCloseStyleSheet());
      //maximize
       ui->btn_maximize->setStyleSheet(StyleHelper::getMaximizeStyleSheet());
      //minimize
       ui->btn_minimize->setStyleSheet(StyleHelper::getMinimizeStyleSheet());

    //connect close, maximize, minimize
       connect(ui->btn_minimize, &QToolButton::clicked, this, &QWidget::showMinimized);
       connect(ui->btn_maximize, &QToolButton::clicked, [this](){
        if (this->isMaximized()) {
           ui->btn_maximize->setStyleSheet(StyleHelper::getMaximizeStyleSheet());
            this->layout()->setMargin(9);
            this->showNormal();
        } else {
           ui->btn_maximize->setStyleSheet(StyleHelper::getRestoreStyleSheet());
            this->layout()->setMargin(0);
            this->showMaximized();
        }
       });
       connect(ui->btn_close, &QToolButton::clicked, this, &QWidget::close);

   //menuBar(Add more buttons)
    menuBar()->setStyleSheet(StyleHelper::getQMenuStyleSheet());

    //file
     QToolButton *fileF = new QToolButton();
      QMenu *file = menuBar()->addMenu(tr("File"));
      file->setStyleSheet(StyleHelper::getMenuBarStyleSheet());

       //new
        QAction *newFile = new QAction (tr("New"),this);
         newFile->setShortcut(QKeySequence::New);
         connect(newFile,SIGNAL(triggered()),this,SLOT(s_file()));
          file->addAction(newFile);

       //open
        QAction *openFile = new QAction (tr("Open"),this);
         openFile->setShortcut(QKeySequence::Open);

          file->addAction(openFile);

       //open as
         QAction *openAsFile = new QAction (tr("Open as"),this);

           file->addAction(openAsFile);

       //the last document
         QAction *lastFile = new QAction (tr("The last document"),this);

            file->addAction(lastFile);

       file->addSeparator();

       //save
         QAction *saveFile = new QAction (tr("Save"),this);
           saveFile->setShortcut(QKeySequence::Save);

            file->addAction(saveFile);

       //save as
         QAction *saveAsFile = new QAction (tr("Save as"),this);
           saveAsFile->setShortcut(QKeySequence::SaveAs);

            file->addAction(saveAsFile);

       //save all
         QAction *saveAllFile = new QAction (tr("Save all"),this);
            saveAllFile->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_S);

             file->addAction(saveAllFile);

       file->addSeparator();

       //exit
         QAction *exitFile = new QAction (tr("Exit"),this);
             exitFile->setShortcut(Qt::CTRL+Qt::Key_Q);
             connect(exitFile,SIGNAL(triggered()),this,SLOT(exit()));
              file->addAction(exitFile);


       fileF->setMenu(file);
    //edit
      QToolButton *editF = new QToolButton();
      QMenu *edit = menuBar()->addMenu(tr("&Edit"));
      edit->setStyleSheet(StyleHelper::getMenuBarStyleSheet());

       //undo
         QAction *undoFile = new QAction (tr("Undo"),this);
              undoFile->setShortcut(Qt::CTRL+Qt::Key_Z);
               edit->addAction(undoFile);

       editF->setMenu(edit);
    //window
     //  QToolButton *windowF = new QToolButton(this);
       QMenu *window = menuBar()->addMenu(tr("&Window"));
       window->setStyleSheet(StyleHelper::getMenuBarStyleSheet());

       //full screen mode
         QAction *fsm = new QAction (tr("Full screen mode"),this);
              fsm->setShortcut(Qt::Key_F5);
              connect(fsm,SIGNAL(triggered()),this,SLOT(f_fsm()));
                window->addAction(fsm);

       windowF->setMenu(window);
    //reference
       QToolButton *referenceF = new QToolButton();
       QMenu *reference = menuBar()->addMenu(tr("&Reference"));
       reference->setStyleSheet(StyleHelper::getMenuBarStyleSheet());

      //About the program "Project"
         QAction *atp = new QAction (tr("About the program Project"),this);
               connect(atp,SIGNAL(triggered()),this,SLOT(about()));
                reference->addAction(atp);

          referenceF->setMenu(reference);
    //Header


       //toolBar(Add setting for toolBar)

         //oToolBar
          oToolBar = new QToolBar("First ToolBar");
          oToolButton = new QToolButton(this);
          oToolButton->setIcon(QIcon("../../Синий.jpg"));
          oToolBar->addWidget(oToolButton);
          oToolBar->setStyleSheet(StyleHelper::getToolBStyleSheet());
          addToolBar(oToolBar);


         //tToolBar
           tToolBar = new QToolBar("Second ToolBar");
           tToolButton = new QToolButton(this);
           tToolButton->setIcon(QIcon("../../Красный.jpg"));
           tToolBar->addWidget(tToolButton);
           tToolBar->setStyleSheet(StyleHelper::getToolBStyleSheet());
           addToolBar(tToolBar);


}

MainWindow::~MainWindow()
{
    delete ui;
}
(Знаю, что громадный)
We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

2
t
  • May 8, 2017, 6:35 a.m.

Вот по этой статье (Чет не прицепилось)

    Evgenii Legotckoi
    • May 8, 2017, 11:53 p.m.

    Весь проект в таком случае прикреплять надо. Там до чёртиков включений посторонних файлов. Если бы всё что там было написано, было только в составе класса MainWindow, тогда лады, а так там StyleHelper, ресурсные файлы и т.д. А так, что Вам тут подсказывать? Какие ошибки выпадают Вы не привели. Скопипастить в свой проект и запустить компиляцию? А толку-то? Первое, на что сругается компилятор - это будет отсутствие заголовочного файла stylehelper.h, который явно не является причиной ваших ошибок. Удалять всё, что не включено? Опять же никакого толку. Ну удалю я лишнее, сделаю рабочий вариант класса, но у вас всё равно опыта не хватит, чтобы внедрить это к себе в проект.

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      AD

      C ++ - Test 004. Pointers, Arrays and Loops

      • Result:50points,
      • Rating points-4
      m

      C ++ - Test 004. Pointers, Arrays and Loops

      • Result:80points,
      • Rating points4
      m

      C ++ - Test 004. Pointers, Arrays and Loops

      • Result:20points,
      • Rating points-10
      Last comments
      i
      innorwallNov. 11, 2024, 10:12 p.m.
      Django - Tutorial 055. How to write auto populate field functionality Freckles because of several brand names retin a, atralin buy generic priligy
      i
      innorwallNov. 11, 2024, 6:23 p.m.
      QML - Tutorial 035. Using enumerations in QML without C ++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
      i
      innorwallNov. 11, 2024, 3:50 p.m.
      Qt/C++ - Lesson 052. Customization Qt Audio player in the style of AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
      i
      innorwallNov. 11, 2024, 2:19 p.m.
      Heap sorting algorithm The role of raloxifene in preventing breast cancer priligy precio
      i
      innorwallNov. 11, 2024, 1:55 p.m.
      PyQt5 - Lesson 006. Work with QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
      Now discuss on the forum
      i
      innorwallNov. 11, 2024, 8:56 p.m.
      добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
      i
      innorwallNov. 11, 2024, 10:55 a.m.
      Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
      9
      9AnonimOct. 25, 2024, 9:10 a.m.
      Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

      Follow us in social networks