#include <QApplication>#include <QTextCodec>#include "mainwindow.h"const static char * DEFAULT_PROG_CODEPAGE = "Windows-1251";void setlog(){ bool openfile; QFile file("Log.txt"); openfile = file.open(QFile::Append | QFile::Text); if (!openfile) { QMessageBox::critical(0, qAppName(), "Cannot open/create file"); } else { QTextStream out(&file); // Для начала просто написать что-нибудь в ЛОГ-файл out << "open__\n"; file.close(); }}class MyApplication : public QApplication{public: MyApplication( int argc, char ** argv ) : QApplication( argc, argv ) { } void commitData(QSessionManager &sm) { setlog(); }};int main(int argc, char *argv[]){ QTextCodec::setCodecForLocale(QTextCodec::codecForName(DEFAULT_PROG_CODEPAGE)); setlog();// QApplication a(argc, argv); MyApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
#include <QApplication>#include <QTextCodec>#include "mainwindow.h"const static char * DEFAULT_PROG_CODEPAGE = "Windows-1251";int main(int argc, char *argv[]){ QTextCodec::setCodecForLocale(QTextCodec::codecForName(DEFAULT_PROG_CODEPAGE)); QApplication a(argc, argv); MainWindow w; w.show(); QObject::connect(&a, SIGNAL(commitDataRequest(QSessionManager &)), &w, SLOT(slot_qapp(QSessionManager &)), Qt::DirectConnection); return a.exec();}
public slots: void slot_qapp(QSessionManager &sm);
void MainWindow::slot_qapp(QSessionManager &sm){ addLog("Log.txt", "Program stoped : " + QDateTime::currentDateTime().toString("yyyy.MM.dd::hh.mm"));}
// на примере события Windows bool cwin::nativeEvent( const QByteArray &eventType, void *message, long *result ){ Q_UNUSED(eventType) MSG* msg = static_cast<MSG*>(message); if(msg->message == WM_QUERYENDSESSION) { // здесь сделать всё что надо: m_connectThread.stop(); } return QWidget::nativeEvent(eventType, message, result);}
cwin w;w.showMinimized();w.hide();