Перенос окна
Вот по этой статье я пытался сделать так , что бы окно пересувалось, но у меня выдает дофига ошибок, помогите, что куда вписывать. Вот код заголовочного файла:
#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
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 07:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 01:50
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 04:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Вот по этой статье (Чет не прицепилось)
Весь проект в таком случае прикреплять надо. Там до чёртиков включений посторонних файлов. Если бы всё что там было написано, было только в составе класса MainWindow, тогда лады, а так там StyleHelper, ресурсные файлы и т.д. А так, что Вам тут подсказывать? Какие ошибки выпадают Вы не привели. Скопипастить в свой проект и запустить компиляцию? А толку-то? Первое, на что сругается компилятор - это будет отсутствие заголовочного файла stylehelper.h, который явно не является причиной ваших ошибок. Удалять всё, что не включено? Опять же никакого толку. Ну удалю я лишнее, сделаю рабочий вариант класса, но у вас всё равно опыта не хватит, чтобы внедрить это к себе в проект.