• QT day3


    1.
    2.
    main.cpp

    1. #include "widget.h"
    2. #include "form.h"
    3. #include
    4. int main(int argc, char *argv[])
    5. {
    6. QApplication a(argc, argv);
    7. Widget w;
    8. w.show();
    9. Form f; //实例化一个form类的对象
    10. QObject::connect(&w,&Widget::jump,&f,&Form::jump_slot); //连接两个界面,widget中的信号函数和form中的槽函数
    11. return a.exec();
    12. }

    form.cpp
     

    1. #include "form.h"
    2. #include "ui_form.h"
    3. Form::Form(QWidget *parent) :
    4. QWidget(parent),
    5. ui(new Ui::Form)
    6. {
    7. ui->setupUi(this);
    8. }
    9. Form::~Form()
    10. {
    11. delete ui;
    12. }
    13. //槽函数 实现界面的出现
    14. void Form::jump_slot()
    15. {
    16. this->show();
    17. }

    widget.h
     

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. //以下为图形界面的操作 9-19
    8. ui->setupUi(this);
    9. this->setWindowTitle("QQ");
    10. this->setWindowIcon(QIcon(":/pictrue/qq.png"));
    11. this->setFixedSize(520,460);
    12. ui->lab1->setPixmap(QPixmap(":/pictrue/logo.png"));
    13. ui->lab1->setScaledContents(true);
    14. //let1为账号的LINEEDIT框,let2为密码的LINEEDIT框
    15. ui->let1->setPlaceholderText("QQ账号/手机号/QQ邮箱");
    16. ui->let2->setEchoMode(QLineEdit::Password);
    17. //基于qt4的连接,自定义槽函数,实现登录键的操作
    18. connect(ui->btn2,SIGNAL(clicked()),this,SLOT(my_slot()));
    19. //基于qt5的连接,自定义槽函数,实现退出键的操作
    20. connect(ui->btn1,&QPushButton::clicked,this,&Widget::My_slot);
    21. }
    22. Widget::~Widget()
    23. {
    24. delete ui;
    25. }
    26. //退出键的槽函数
    27. void Widget::my_slot()
    28. {
    29. // 问题消息对话框的创建 使用静态成员函数
    30. int rst = QMessageBox::question(this,"问题","是否要退出登录",QMessageBox::Yes|QMessageBox::No);
    31. //如果是Yes 退出登录界面
    32. if(rst ==QMessageBox::Yes )
    33. {
    34. this->close();
    35. }
    36. }
    37. //登录键的槽函数
    38. void Widget::My_slot()
    39. {
    40. //判断密码是否正确
    41. if(ui->let1->text()==QString("admin") && ui->let2->text()==QString("123456"))
    42. {
    43. //正确后,弹出信息对话框 基于基本版本的创建 需要使用exec函数执行
    44. QMessageBox ifm (QMessageBox::Information,"提示","登录成功",QMessageBox::Ok);
    45. int rst = ifm.exec();
    46. if (rst ==QMessageBox::Ok )
    47. {
    48. this->close(); //退出登录界面
    49. emit jump(); //触发jump信号,准备跳转窗口
    50. }
    51. }
    52. else
    53. {
    54. //错误后,弹出错误对话框 基于基本版本的创建 需要使用exec函数执行
    55. QMessageBox crl (QMessageBox::Critical,"错误","账号密码不正确,是否重新登录",QMessageBox::Yes|QMessageBox::No);
    56. int rst=crl.exec();
    57. if (rst==QMessageBox::Yes)
    58. {
    59. ui->let2->clear(); //清空密码
    60. }
    61. else
    62. {
    63. this->close(); //退出登录界面
    64. }
    65. }
    66. }

  • 相关阅读:
    asp.net会议预约管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
    Docker搭建Dillinger
    Java开发基础_03
    儿童学生护眼台灯哪个牌子好?双十二儿童护眼台灯精选
    [网鼎杯2018]Unfinish-1|SQL注入|二次注入
    科学并不等于实验 南瓜科学给出全新答案
    【敬伟ps教程】制图操作
    二叉树习题总结
    国内设计师经常逛的5个素材网站
    Python异步编程之web框架 异步vs同步 数据库IO任务并发支持对比
  • 原文地址:https://blog.csdn.net/benbai_v/article/details/133933692