Есть главное окно QMainWindow
QPushButton
( при нажатии соединяется с close()
)Борюсь с этой проблемой уже третий день При выходе по кнопке "Выход" закрывается виджет. Как унаследовать событие закрытия главного окна?
mainwindow.h
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
virtual void closeEvent (QCloseEvent *event);
StartWindow *startWindow;
};
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
startWindow = new StartWindow;
}
void MainWindow::closeEvent (QCloseEvent *event)
{
//переопределила
}
startwindow.h
class StartWindow : public QWidget
{
Q_OBJECT
public:
explicit StartWindow(QWidget *parent = nullptr);
private slots:
void slotQuit();
private:
virtual void closeEvent (QCloseEvent *event);
};
startwindow.cpp
StartWindow::StartWindow(QWidget *parent) : QWidget(parent)
{
butQuit = new QPushButton(tr("Выход"));
hLayout = new QHBoxLayout(this);
hLayout->addWidget(butQuit, 2);
setLayout(hLayout);
// соединение кнопок с слотами
connect(butQuit, SIGNAL(clicked()), this, SLOT(slotQuit()));
}
void StartWindow ::slotQuit()
{
this -> close();
}
void StartWindow::closeEvent (QCloseEvent *event)
{
// переопределила
}
В главном окне, должен меняться виджет при нажатии на кнопки, но при нажатии на Выход, закрывается сам виджет
Как сделать чтобы при нажатии на кнопку в Виджете, (который в главном окне) закрывалось главное окно?
Возможно есть стандартные средства, но мне приходит идея реализовать сигнал у StartWindow
и подписать на это событие MainWindow
.
startwindow.h
#ifndef STARTWINDOW_H
#define STARTWINDOW_H
#include <QWidget>
#include <QMessageBox>
#include <QPushButton>
#include <QCloseEvent>
#include <QHBoxLayout>
#include <QVBoxLayout>
class StartWindow : public QWidget
{
Q_OBJECT
public:
explicit StartWindow(QWidget *parent = nullptr);
signal:
void closedWindow(QCloseEvent *event)
private slots:
void slotQuit();
private:
QPushButton *butQuit;
QPushButton *butStart;
QHBoxLayout *hLayout;
virtual void closeEvent (QCloseEvent *event);
};
#endif // STARTWINDOW_H
*.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
startWindow = new StartWindow;
setCentralWidget(startWindow);
connect(startWindow, &StartWindow::closedWindow,
this, [this] (event) { closeEvent(event); });
}
void StartWindow::closeEvent (QCloseEvent *event) {
// some code
emit closedWindow(event);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно реализовать работу с терминалом из приложенияЗадача состоит в том что бы через ssh на сервер кидать проект,компилить его там,и возвращать...
На сайте есть множество svg картинок,подскажите как лучше их защитить от копирования и есть ли смысл это делать?Сейчас можно просто посмотреть...