我這樣做可以重新啓動我的遊戲,但程序有錯誤。我想在用戶損失時顯示一個QDialog
。在這QDilag
我把兩個pushbutton
重試和exit.also我有一個QDialog
開始遊戲。我的錯誤? (我看過類似的問題,並就這些根據,但尚未我有問題)如何重新啓動qt中的應用程序?
extern int const EXIT_CODE_REBOOT;
mydialog_end::mydialog_end(QWidget *parent) :
QDialog(parent
{
retry=new QPushButton(this);
exit=new QPushButton(this);
retry->setText("RETRY");
exit->setText("EXIT");
connect(retry,SIGNAL(clicked()),this,SLOT(on_retry_clicked()));
connect(exit,SIGNAL(clicked()),this,SLOT(on_exit_clicked()));
}
void mydialog_end::on_retry_clicked()
{
qApp->exit(EXIT_CODE_REBOOT);
accept();
}
void mydialog_end::on_exit_clicked()
{
//what do i do for end of game?
reject();
}
//////////////in class myenemy///////
public slots:
void loss();
void Myenemy1::loss()
{
if(this->collidesWithItem(_mario))
{
//do something....
mydialog_end dialog;
dialog.exec();
}
}
//////////////in main////////////
extern int const RESTART_CODE;
int main(int argc, char *argv[])
{
Mydialogstart dlg;//a dialog for beginning game
int state= dlg.exec();
int return_from_event_loop_code=0;
do
{
QApplication a(argc, argv);
MainWindow w;
if(state==QDialog::Accepted)
{
w.show();
qDebug()<<"accepted";
}
else if(state==QDialog::Rejected)
{
qDebug()<<"rejected";
dlg.close();
return 0;
}
return_from_event_loop_code = a.exec();
} while(return_from_event_loop_code==RESTART_CODE);
return return_from_event_loop_code;
}
我在哪裏寫這個?以前的方法是否正確? – sarina
你可以把它放在你想重新啓動的任何地方。試試你的代碼,看看它是否有幫助。 – Nejat
我使用'QDialog'和我的主要問題是這個問題。我有運行時錯誤。如果可能給我你的郵件地址來描述問題波斯當然,如果你想.thank – sarina