Примечание: речь идет о Qt на виджетах.
Даже если у вас приложение состоит из одной формы, то в любом случае его можно закрыть кнопкой в заголовке или нажатием быстрых клавиш. Чтобы это предотвратить, надо всего навсего переопределить стандартное событие виджета closeEvent. Оно имеет следующее определение:
virtual void closeEvent(QCloseEvent *event);
таким образом, если мы имеем, например, форму MainWindow, то в заголовке (.h) пишем такой код:
class MainWindow : public QMainWindow
{
...
virtual void closeEvent(QCloseEvent *event);
...};
а в файле реализации непосредственно сам метод:
void MainWindow::closeEvent(QCloseEvent* event) { int quit = QMessageBox::information(this,
"Realy quit?", "Are you sure?", tr("Yes"), tr("No")); quit == 0 ? event->accept(): event->ignore(); }
и не забываем прописать все необходимые инклюды в начале страницы:
#include "qmessagebox" #include "qcloseevent"
Теперь любая попытка закрыть данное окно приведет к появлению
вашего сообщения.
то что искал, спасибо
ОтветитьУдалитьРад, что пригодилось. Пожалуйста!
ОтветитьУдалитьСпасибо! virtual метод желательно объявлять в private signals?
ОтветитьУдалитьTips On How To Use Spade - Titanium Dab Tool - IT
ОтветитьУдалитьThe tip is to use a blade for everything in your pot. The titanium pen blade titanium trim hair cutter reviews is the same size as titanium flask your normal titanium ring pot, but with different settings for snow peak titanium the pots.