sp1:创建一个qt设计器类LoginDialog
sp2:
退出按钮:按下退出按钮会退出程序
登录按钮:按下登录按钮会关闭登录对话框,并显示主窗口。
转到槽->clicked()->在槽函数内加 accept(); ->同时在mian.cpp中加如下
LoginDialog dlg;
if (dlg.exec() == QDialog::Accepted)
{
w.show();
return a.exec();
}
else return 0;
sp3:判断账号密码是否正确
// 判断用户名和密码是否正确,
// 如果错误则弹出警告对话框
void LoginDialog::on_loginBtn_clicked()
{
//如果正确
if(ui->usrLineEdit->text() == tr("yafeilinux") &&
ui->pwdLineEdit->text() == tr("123456"))
{
accept();
}
//如果错误
else {
QMessageBox::warning(this, tr("Waring"),
tr("user name or password error!"),
QMessageBox::Yes);
ui->usrLineEdit->clear();
ui->pwdLineEdit->clear();
ui->usrLineEdit->setFocus(); // 清空内容并定位光标
}
}
tr():
tr() 是一个用于文本国际化的函数。它的主要作用是将需要进行本地化处理的字符串进行翻译,以便在多语言环境下显示正确的文本。
QMessageBox警示对话框(可以自定义也有现成的)
QMessageBox::warning (this, tr("对话框标题"), tr("显示的消息内容"), QMessageBox::Yes);
QMessageBox::warning是一个静态方法,用于创建一个警告对话框。
它的参数依次为:父窗口指针(this)、对话框标题("Warning",警告)、显示的消息内容(" ")和按钮选项(QMessageBox::Yes,显示一个确认按钮)。
SetFocus焦点部件
上述代码中ui->usrLineEdit->setFocus(); 是指清空两个框中内容后自动将光标置于usrLineEdit文本框内。
输入框密码形式(所输内容以小黑点形式显现)
将文本框属性echoMode改为Password或者在LoginDialog
类的构造函数中使用setEchoMode(QLineEdit::Password)。
Trimmed() a.trimmed();
是QString中的一个方法。返回去除字符串两端空白字符的内容。