خروج و اجرای مجدد برنامه



  • p{direction:rtl; text-align:right}. سلام بزرگواران
    آیا راه حل بهتری از قطعه کد زیر برای اجرای مجدد برنامه وجود داره؟

    @#if defined(Q_WS_WIN)
    #include <windows.h>
    #endif

    void MainWindow::on_pushButton_clicked()
    {
    hide(); // مخفی کردن پنجره اصلی
    QTimer::singleShot( 1000, qApp, SLOT( quit() ) ); //بعد از یک ثانیه برنامه بسته شود

    QString my_App_Path = qApp->applicationFilePath() ;
    #if defined(Q_WS_X11)
        #error "را اینجا بنویسم linux کد مربوط به"
    #elif defined(Q_WS_WIN)
        ShellExecuteA(this->winId(), NULL ,
                      my_App_Path.toAscii().data() ,
                      NULL, NULL, SW_SHOWNORMAL
                      );
    #elif defined(Q_WS_MACX)
        #error "را اینجا بنویسم Mac OS کد مربوط به "
    #else
        #error "سیستم عامل شما پشتیبانی نمیشه"
    #endif
    

    }@

    p{direction:rtl; text-align:right}. کد مربوط به قسمت لینوکس و مکینتاش رو چطور باید بنویسم؟
    با تشکر فراوان



  • p{direction:rtl; text-align:right}. جل الخالق!
    کد بالا با کامپایلر MingW کامپایل میشه ولی با MSVC2008 نه!!!



  • @
    #include <QApplication>
    #include <QProcess>

    qApp->quit();
    QProcess::startDetached(qApp->arguments()[0], qApp->arguments());
    @



  • p{direction:rtl; text-align:right}. یک دنیا ممنون



  • p{direction:rtl; text-align:right}. خواهش میکنم


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.