1>
完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面
如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能
要求:(基于属性版、静态成员函数都使用)实现对话框的弹出
相关核心代码:
void Form::login_clicked_slot()
{
if(ui->Account->text() == "123" && ui->Password->text() == "123"){
QMessageBox msg(
QMessageBox::Information,
"信息对话框",
"登录成功",
QMessageBox::Ok,
this
);
int ret = msg.exec();
if(ret == QMessageBox::Ok){
this->close();
emit send_signal();
}
}else{
int ret = QMessageBox::critical(
this,
"错误对话框",
"账号和密码不匹配",
QMessageBox::Yes | QMessageBox::No
);
if(ret == QMessageBox::Yes){
ui->Password->clear();
}else{
this->close();
}
}
}
void Form::on_quit_clicked()
{
int ret = QMessageBox::question(
this,
"问题对话框",
"您是否确定要退出登录?"
);
if(ret == QMessageBox::Yes){
this->close();
}
}
2> 使用定时器事件 实现闹钟
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
id1 = startTimer(1000);
}
void Widget::timerEvent(QTimerEvent *e)
{
static int count = 0;
if(e->timerId() == id1){
QTime sys_time = QTime::currentTime();
QString t = sys_time.toString();
ui->SysTime->setText(t);
}
if(e->timerId() == id2){
ui->Msg->setText("该起床啦\n");
count++;
id3 = startTimer(2000);
killTimer(id2);
}
if(e->timerId() == id3){
QString msg = ui->Msg->text();
msg += "该起床啦\n";
ui->Msg->setText("该起床啦\n");
count++;
if(count == 5){
killTimer(id3);
ui->Btn->setText("启动");
count = 0;
}
}
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_Btn_clicked()
{
if(ui->Btn->text() == "启动"){
ui->Btn->setText("关闭");
QString sys_time = ui->SysTime->text();
QStringList list1 = sys_time.split(":");
QString h = list1.at(0);
QString m = list1.at(1);
QString s = list1.at(2);
//qDebug() << h << " " << m << " " << s;
int sys_h = h.toInt();
int sys_m = m.toInt();
int sys_s = s.toInt();
int sys = sys_h*3600 + sys_m*60 + sys_s;
QString tim_time = ui->Tim->text();
QStringList list2 = tim_time.split(":");
int tim_h = list2.at(0).toInt();
int tim_m = list2.at(1).toInt();
int tim_s = list2.at(2).toInt();
int tim = tim_h*3600 + tim_m*60 + tim_s;
id2 = startTimer((tim-sys)*1000);
}else{
ui->Btn->setText("启动");
killTimer(id2);
killTimer(id3);
}
}