दिलचस्प पोस्ट
जावास्क्रिप्ट के जरिए एफएफ और क्रोम में मैं डिफ़ॉल्ट होमपेज कैसे सेट कर सकता हूं? "अवैध निर्देश: 4" त्रुटि क्या है और "-मॅकोक्स-वर्जन-मिन = 10.x" क्यों ठीक है? Jqgrid पर खोज कैसे कार्यान्वित करें? Xamarin.Forms सूची दृश्य: एक टैप किए गए आइटम का हाइलाइट रंग सेट करें मैं एक चर का प्रकार कैसे प्राप्त करूं? कोई ओविन नहीं। पर्यावरण के संदर्भ में संदर्भ मिला जावा में फ़ाइल की अंतिम संशोधित दिनांक प्राप्त करना ऑब्जेक्ट की एक सूची निर्दिष्ट फ़ील्ड मान के साथ कुछ शामिल है? JavaScript या jQuery के साथ एक चयन सूची को कैसे स्क्रॉल करें? किसी सूची में अज्ञात की संख्या के साथ एक ResultSet मानचित्र कैसे करें और उसे एक HTML तालिका में प्रदर्शित करें? कुछ अनुभागों के ऊपर हेडर के साथ एक सूची दृश्य कैसे उत्पन्न करें? सबप्रोसेस Popen और कॉल (मैं उन्हें कैसे उपयोग कर सकते हैं) के बीच अंतर क्या है? सामग्री प्रकार पाठ / html; charset = प्रतिक्रिया संदेश के UTF-8 बाइंडिंग (पाठ / एक्सएमएल; वर्णसेट = यूटीएफ -8) की सामग्री प्रकार से मेल नहीं खाती आप एक नया \ डेटटाइम ('0000-00-00 00:00:00') के लिए परिणाम की व्याख्या कैसे करते हैं? जावास्क्रिप्ट ऑब्जेक्ट में मैं एक कुंजी / वैल्यू पेयर कैसे जोड़ सकता हूं?

अपने खुद के क्यूटी अनुप्रयोग को कैसे आरंभ करना है?

मैं खुद से पूछ रहा हूं कि कैसे अपना खुद का क्यूटी अनुप्रयोग पुनः आरंभ करें?

क्या कोई मुझे एक उदाहरण दिखा सकता है?

Solutions Collecting From Web of "अपने खुद के क्यूटी अनुप्रयोग को कैसे आरंभ करना है?"

एप्लिकेशन को पुनरारंभ करने के लिए, कोशिश करें:

#include <QApplication> #include <QProcess> ... // restart: qApp->quit(); QProcess::startDetached(qApp->arguments()[0], qApp->arguments()); 

मैं अन्य उत्तर समाधान ले रहा हूं, लेकिन बेहतर है पॉइंटर्स के लिए कोई ज़रूरत नहीं है, लेकिन इसकी आवश्यकता है ; एक कब के while बयान के बाद do { ... } while( ... ); निर्माण।

 int main(int argc, char *argv[]) { const int RESTART_CODE = 1000; do { QApplication app(argc, argv); MainWindow main_window(app); } while( app.exec() == RESTART_CODE); return return_from_event_loop_code; } 

Qtcentre.org पर एक एप्लिकेशन थ्रेड को पुनरारंभ करने के तरीके पर एक नज़र डालें, जहां मूवी इस कोड को देते हैं

 #define RESTART_CODE 1000 int main(int argc, char *argv[]) { int return_from_event_loop_code; QPointer<QApplication> app; QPointer<MainWindow> main_window; do { if(app) delete app; if(main_window) delete main_window; app = new QApplication(argc, argv); main_window = new MainWindow(app); return_from_event_loop_code = app->exec(); } while(return_from_event_loop_code==RESTART_CODE) return return_from_event_loop_code; } 

मान लें कि 1337 आपका पुनरारंभ कोड है:

main.cxx

 int main(int argc, char * argv[]) { int result = 0; do { QCoreApplication coreapp(argc, argv); MyClass myObj; result = coreapp.exec(); } while( result == 1337 ); return result; } 

myClass.cxx

 qApp->exit(1337); 

मैंने बस ऊपर वर्णित विधि का इस्तेमाल किया और मैंने देखा कि मेरा एप्लिकेशन पुनरारंभ पर क्रैश हो जाता है। … तो मैंने कोड की निम्न पंक्तिएं बदल दी:

 if(app) delete app; if(main_window) delete main_window; 

सेवा मेरे:

 if(main_window) delete main_window; if(app) delete app; 

और यह ठीक बर्ताव करता है कुछ कारणों से खिड़की पहले हटा दी जानी चाहिए। भावी पाठकों के लिए सिर्फ एक नोट।


संपादित करें: … और उन लोगों के लिए एक अलग दृष्टिकोण जो एक वास्तविक प्रक्रिया-पुनरारंभ करना चाहते हैं: आप QApplication के अपने उपवर्ग में एक myApp :: Restart () विधि घोषित कर सकते हैं। निम्न संस्करण MS-Windows और MacOS दोनों पर ठीक काम करता है:

 // Restart Application void myApp::Restart(bool Abort) { // Spawn a new instance of myApplication: QProcess proc; #ifdef Q_OS_WIN proc.start(this->applicationFilePath()); #endif #ifdef Q_OS_MAC // In Mac OS the full path of aplication binary is: // <base-path>/myApp.app/Contents/MacOS/myApp QStringList args; args << (this->applicationDirPath() + "/../../../myApp.app"); proc.start("open", args); #endif // Terminate current instance: if (Abort) // Abort Application process (exit immediattely) ::exit(0); else this->exit(0); // Exit gracefully by terminating the myApp instance } 

रूबेविन के विचार पर यह मामूली बदलाव PyQt के साथ काम करता है। clearSettings को clearSettings करने वाली विधि है।

 class GuiMain #Most of implementation missing def clearSettings(self): #Clearing the settings missing QApplication.exit(GuiMain.restart_code) restart_code = 1000 @staticmethod def application_main(): """ The application's main function. Create application and main window and run them. """ while True: app = QApplication(sys.argv) window = GuiMain() window.show() ret = app.exec_() if ret != GuiMain.restart_code: break del window del app 

यहां कोड है:

main.cpp:

 int main(int argc, char *argv[]) { int currentExitCode = 0; do { QApplication a(argc, argv); MainWindow w; w.show(); currentExitCode = a.exec(); } while( currentExitCode == MainWindow::EXIT_CODE_REBOOT ); return currentExitCode; } 

mainwindow.h

  class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); static int const EXIT_CODE_REBOOT;//THIS IS THE IMPORTANT THING TO ADD TO YOUR CODE ~MainWindow(); private slots: void slotReboot();//AND THIS ALSO //ALL THE OTHER VARIABLES } 

स्लॉट slotReboot() स्लॉट है जो कि मुख्य QActionQAction में QAction होने वाले QAction के संकेत प्राप्त करेगा I

mainwindow.cpp

सबसे पहले EXIT_CODE_REBOOT आरंभ EXIT_CODE_REBOOT :

 int const MainWindow::EXIT_CODE_REBOOT = -123456789; 

और एक घोषित QAction सूचक:

 QAction* actionReboot; 

फिर मुख्य MainWindow निर्माता में:

 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); actionReboot = new QAction( this ); actionReboot->setText( tr("Restart") ); actionReboot->setStatusTip( tr("Restarts the application") ); connect( actionReboot, SIGNAL (triggered()),this, SLOT (slotReboot())); } 

और अंत में आपको सिग्नल भेजने की जरूरत है (इस कोड में आपको अपने कोड के ज़रिये), इस तरह से:

 actionReboot->trigger(); 

मैंने इन निर्देशों का पालन करते हुए मैंने जो कोड दिखाया है: एक आवेदन पुनरारंभ करने के लिए कैसे – Qt विकी

उप-क्लासेस के बिना एक वास्तविक प्रक्रिया को पुनरारंभ करना:

 QCoreApplication a(argc, argv); int returncode = a.exec(); if (returncode == -1) { QProcess* proc = new QProcess(); proc->start(QCoreApplication::applicationFilePath()); } return returncode; 

मैक ओएस जैसे पहले उदाहरण के लिए संपादित करें

कॉल को पुनः आरंभ करने के लिए

 QCoreApplication::exit(-1); 

कहीं आपके कोड में