Question

J'ai un ClientSocket classe qui est un TcpSocket dans un certain état de la conversation que je dois demander à l'utilisateur d'entrer un mot de passe de communication. J'ai donc créé un DG::ChallangeDialog dialogue. dans DG::ChallangeDialogs Ctor J'ai

ui->setupUi(this);
QPushButton* okButton = ui->buttonBox->button(QDialogButtonBox::Ok);
if(okButton != 0x0){
    okButton->setText("Challange");
}
QObject::connect(this, SIGNAL(accepted()), this, SLOT(acceptedSlot()));

acceptedSlot émet à nouveau un signal challanged(QString)

void ChallangeDialog::acceptedSlot(){
    QString text = ui->passBox->text();
    emit challanged(text);
}

ClientSocket je fais

    case Hallo:{
            if(m->message().startsWith("welcome")){
                DG::ChallangeDialog* dlg = new DG::ChallangeDialog;
                dlg->setModal(true);
                connect(dlg, SIGNAL(challanged(QString)), this, SLOT(challanged(QString)));
                dlg->exec();
                /*
                DG::MessagePacket* res = new DG::MessagePacket((int)Hallo);
                res->setMessage("challange");
                send(res);
                state = Challange;
                */
            }
        }break;

Dans ClientSocket::challange emplacement J'envoie un message Challange (texte) sur la prise et stocker le mot de passe.


et je pense la boîte de dialogue pour cacher là et la conversation prise normale de continuer. et après la boîte de dialogue est accepté ou rejeté l'application principale quittes (Il quitte ne tombe pas en panne). Pourquoi?

  • Mon application n'a pas d'autres Widgets. Je travaille comme un QCoreApplication. Mais je l'ai utilisé QApplication parce que j'ai des besoins de l'interface graphique.
Était-ce utile?

La solution

Est-ce la seule fenêtre qui apparaît à ce moment? Si oui, je suppose que votre QApplication instance est réglé sur quitter quand la dernière fenêtre est fermée . Il est vrai par défaut.

Si tel est le cas, vous devez définir explicitement à false avant d'afficher toutes les fenêtres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top