← Back

LineEdit + Login 登录界面实现 教学总结


Table of Contents
  1. 一、这个模块到底在学什么
  2. 第 1 层:输入层
  3. 第 2 层:处理层
  4. 第 3 层:状态层
  5. 第 4 层:持久化层
  6. 二、每个函数的详细教学
  7. 1. MainWindow::encrypt(const QString &str)
  8. 1.1 这个函数的输入输出
  9. 1.2 为什么不能直接 append(str)
  10. 1.3 为什么推荐 toUtf8() 而不是 toLocal8Bit()
  11. 1.4 hash.result().toHex() 到底是什么
  12. 2. MainWindow::ReadString()
  13. 2.1 这个函数的设计意义
  14. 2.2 settings.value(...).toBool() / .toString() 为什么这么写
  15. 2.3 为什么默认密码也要先 encrypt("12345")
  16. 3. MainWindow::WriteString()
  17. 3.1 这里保存的不是“密码”,而是“密码哈希值”
  18. 3.2 为什么不能反过来把密码显示回密码框
  19. 4. MainWindow::on_pushButton_clicked()
  20. 4.1 trimmed() 的意义
  21. 4.2 为什么先加密再比较
  22. 4.3 m_tryCount 是什么
  23. 三、新出现模块的重点教学
  24. A. QByteArray 详细教学
  25. A.1 它是什么
  26. A.2 它和 QString 的区别
  27. A.3 为什么这次必须用它
  28. A.4 常用接口
  29. B. QSettings 详细教学
  30. B.1 它是什么
  31. B.2 你这次怎么用的
  32. B.3 两个最核心函数
  33. B.4 QVariant 为什么会出现
  34. B.5 什么时候适合用 QSettings
  35. C. QCryptographicHash 详细教学
  36. C.1 它是什么
  37. C.2 这次用法的标准结构
  38. C.3 Md5 到底是什么
  39. C.4 为什么说它“不能解密”
  40. C.5 学术上更准确的说法
  41. C.6 真实工程里要不要用 MD5
  42. D. QMessageBox 详细教学
  43. D.1 它是什么
  44. D.2 这次你用到了什么
  45. D.3 三者区别
  46. 四、这个模块最重要的易错点
  47. 易错点 1:明文和密文混用
  48. 易错点 2:QString 和 QByteArray 混淆
  49. 易错点 3:把配置读写当数据库
  50. 易错点 4:把文档里的全局变量照抄
  51. 五、你现在应该形成的 Qt 认知
  52. 六、这一模块你应该记住的最小模板

Protected content

请输入课程内容访问密码