Перенос окна
Вот по этой статье я пытался сделать так , что бы окно пересувалось, но у меня выдает дофига ошибок, помогите, что куда вписывать. Вот код заголовочного файла:
#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 хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Ua
- Unknown akadamn
- 24 января 2025 г. 17:14
Qt - Тест 001. Сигналы и слоты
- Результат:84баллов,
- Очки рейтинга4
Ua
- Unknown akadamn
- 24 января 2025 г. 16:22
Qt - Тест 001. Сигналы и слоты
- Результат:42баллов,
- Очки рейтинга-8
Последние комментарии
ИМ
Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь Максимов22 ноября 2024 г. 21:51

Evgenii Legotckoi31 октября 2024 г. 23:37
Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5 октября 2024 г. 16:51
QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Сейчас обсуждают на форуме
f
Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
firstlunoxod15 февраля 2025 г. 13:46

Дмитрий3 февраля 2025 г. 16:24
не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Вот по этой статье (Чет не прицепилось)
Весь проект в таком случае прикреплять надо. Там до чёртиков включений посторонних файлов. Если бы всё что там было написано, было только в составе класса MainWindow, тогда лады, а так там StyleHelper, ресурсные файлы и т.д. А так, что Вам тут подсказывать? Какие ошибки выпадают Вы не привели. Скопипастить в свой проект и запустить компиляцию? А толку-то? Первое, на что сругается компилятор - это будет отсутствие заголовочного файла stylehelper.h, который явно не является причиной ваших ошибок. Удалять всё, что не включено? Опять же никакого толку. Ну удалю я лишнее, сделаю рабочий вариант класса, но у вас всё равно опыта не хватит, чтобы внедрить это к себе в проект.