写了个登陆界面 由于主界面需要用到登陆用户名 设置了一个公共变量 QString limitID;
然后主界面写了如下代码设置一个按钮的可用性,当这段去掉的时候登陆和退出登陆都正常 ,加上了就退出进程在,登陆要登2次……
求指点啊!!!要疯了!!!
mainwindow.cpp
loginDialog loginMain(this);
loginMain.exec();
while(loginMain.limitID != "user" && loginMain.limitID!="admin")
loginMain.exec();
if(loginMain.limitID=="user")
ui->actionUsercheck->setEnabled(false);
main.cpp
MainWindow w;
loginDialog dlg;
if(dlg.exec()==QDialog::Accepted) {
w.show();
a.setQuitOnLastWindowClosed(false);
return a.exec();
}
else return 0;
loginDialog.cpp
QSqlQuery query;//数据库
query.exec(QObject::tr("select num,id,pwd, usradmin , name from userdata"));
int flag=0;//循环
while(query.next()) {
if ( ui->userLineEdit->text()==query.value(1).toString() && ui->pwdLineEdit->text()==query.value(2).toString())
{
QDialog::accept();
int fieldNo = query.record().indexOf("usradmin");
limitID =query.value(fieldNo).toString();
flag=1;
}
if(flag==1)
break;
}