Перенос окна
Вот по этой статье я пытался сделать так , что бы окно пересувалось, но у меня выдает дофига ошибок, помогите, что куда вписывать. Вот код заголовочного файла:
#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; }(Знаю, что громадный)
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
OI
- Ora Iro
- Жел. 24, 2024, 6:38 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:40ұпай,
- Бағалау ұпайлары-8
AD
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
Соңғы пікірлер
ИМ
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
IscanderCheҚаз. 31, 2024, 3:43 Т.Қ.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
Вот по этой статье (Чет не прицепилось)
Весь проект в таком случае прикреплять надо. Там до чёртиков включений посторонних файлов. Если бы всё что там было написано, было только в составе класса MainWindow, тогда лады, а так там StyleHelper, ресурсные файлы и т.д. А так, что Вам тут подсказывать? Какие ошибки выпадают Вы не привели. Скопипастить в свой проект и запустить компиляцию? А толку-то? Первое, на что сругается компилятор - это будет отсутствие заголовочного файла stylehelper.h, который явно не является причиной ваших ошибок. Удалять всё, что не включено? Опять же никакого толку. Ну удалю я лишнее, сделаю рабочий вариант класса, но у вас всё равно опыта не хватит, чтобы внедрить это к себе в проект.