#ifndef QSQLFIELD_H<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
#define QSQLFIELD_H
#include <QtCore/qvariant.h>
#include <QtCore/qstring.h>
//这里的包含的头文件,都是小写的q,并且加上.h,这个和QVariant区别是什么?
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Sql)
class QSqlFieldPrivate;                       //在h文件中,尽量使用这种声明,而不使用#include
class Q_SQL_EXPORT QSqlField
{
public:
    enum RequiredStatus { Unknown = -1, Optional = 0, Required = 1 };
//状态都是用枚举类型的
    QSqlField(const QString& fieldName = QString(),
              QVariant::Type type = QVariant::Invalid);
//无效的类型?
    QSqlField(const QSqlField& other);
    QSqlField& operator=(const QSqlField& other);
    bool operator==(const QSqlField& other) const;
inline bool operator!=(const QSqlField &other) const { return !operator==(other); }
//对于运算符的继承!写ui很少自己写这些继承
    ~QSqlField();
void setValue(const QVariant& value);
//const,能用const的都用上了const
    inline QVariant value() const
{ return val; }
//对于这种直接返回的都用inline
    void setName(const QString& name);
    QString name() const;
    bool isNull() const;
    void setReadOnly(bool readOnly);
    bool isReadOnly() const;
    void clear();
    QVariant::Type type() const;
    bool isAutoValue() const;
    void setType(QVariant::Type type);
    void setRequiredStatus(RequiredStatus status);
    inline void setRequired(bool required)
    { setRequiredStatus(required ? Required : Optional); }
    void setLength(int fieldLength);
    void setPrecision(int precision);
    void setDefaultValue(const QVariant &value);
    void setSqlType(int type);
    void setGenerated(bool gen);
    void setAutoValue(bool autoVal);
    RequiredStatus requiredStatus() const;
    int length() const;
    int precision() const;
    QVariant defaultValue() const;
    int typeID() const;
    bool isGenerated() const;
    bool isValid() const;
#ifdef QT3_SUPPORT
    inline QT3_SUPPORT void setNull() { clear(); }
#endif
private:
void detach();
//从对象组中分离对象??
    QVariant val;
    QSqlFieldPrivate* d;
};
#ifndef QT_NO_DEBUG_STREAM
Q_SQL_EXPORT QDebug operator<<(QDebug, const QSqlField &);
#endif
QT_END_NAMESPACE
QT_END_HEADER
#endif // QSQLFIELD_H

转载于:https://blog.51cto.com/no001/345332

菜鸟解读qt源码----qsqlfield.h相关推荐

  1. 基于Qt5.14.2和mingw的Qt源码学习(三) — 元对象系统简介及moc工具是如何保存类属性和方法的

    基于Qt5.14.2和mingw的Qt源码学习(三) - 元对象系统简介及moc工具是如何保存类属性和方法的 一.什么是元对象系统 1.元对象系统目的 2.实现元对象系统的关键 3.元对象系统的其他一 ...

  2. 鸿蒙OS内核分析|解读鸿蒙源码

    操作系统(Operating System): 操作系统的功能是负责管理各种硬件设备,同时对底层硬件设备进行抽象,为上层软件提供高效的系统接口.操作系统设计和实现的优劣直接决定了系统栈的各个方面,比如 ...

  3. Orangepi3-lts 编译Qt源码

    Qt源码编译 环境选择 编译器说明 Qt源码版本与下载 configure选项 make编译 测试编译结果 问题记录 环境选择 这里说的环境包括开发板环境和编译系统环境.我用的是orangepi3-l ...

  4. QT源码拾贝6-11(qwindowswindow)

    目录 6  窗口激活相关的函数QWindowsForeignWindow::setParent 7  QDebug运算符<<重载 8  vscode的windows的变量提示很有意思 9  ...

  5. 【用故事解读 MobX源码(一)】 autorun

    ================前言=================== 初衷:网上已有很多关于 MobX 源码解读的文章,但大多阅读成本甚高.本人在找文章时对此深有体会,故将以系列故事的方式展现源 ...

  6. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    版权声明 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者"tingsking18"和主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口程序.消 ...

  7. RxJava系列6(从微观角度解读RxJava源码)

    RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...

  8. linux如何运行qt源码,Linux/Ubuntu下编译Qt4.8.2源码

    本人所用的系统为Ubuntu 14,所下载的QT源码版本为4.8.2. 以下是编译QT源码的基本步骤: 2.解压代码 输入指令: tar zxvf qt-everywhere-opensource-s ...

  9. 源码解读_入口开始解读Vue源码系列(二)——new Vue 的故事

    作者:muwoo 转发链接:https://github.com/muwoo/blogs/blob/master/src/Vue/2.md 目录 入口开始解读Vue源码系列(一)--造物创世 入口开始 ...

最新文章

  1. 读书:一百个 终身受益的 思维模型(持续更新)
  2. python3笔记_python3 笔记
  3. 微信小程序 - 五星评分(含半分)
  4. 90 % Java 程序员被误导的一个性能优化策略
  5. 为Mac OS X添加用Firefox搜索服务
  6. HttpWebRequest 忽略证书
  7. 2017-06-23
  8. SCHEDULE(调度程序)
  9. centos7安装eclipse
  10. 整人程序源码(VB)
  11. 如何将音乐上传到YouTube音乐
  12. dnf 服务器每周维护,DNF:7.22官方公告出炉,凌晨2点维护7小时,新增3个活动有玄机?...
  13. JAVA计算机毕业设计中药分类管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  14. HaaS EDU场景式应用整体介绍
  15. JS 模拟鼠标自动点击【浏览器内】
  16. 中段尾段全段什么意思_排气管中段 尾段 全段 和芭蕉 是什么意思
  17. [Maven]讲讲它的构建生命周期和拉取 jar 包流程
  18. I-D-E-A中maven的常用指令
  19. Jboot 跨域请求
  20. 网络基础知识:10M、50M、100M宽带下载速率一般是多少?—Vecloud微云

热门文章

  1. 干货丨 从遗传算法到强化学习,一文介绍五大生物启发式学习算法
  2. 干货丨一文带你玩转机器学习和深度学习
  3. (linux) Firefox is already running, but is not responding解决方法
  4. 虚拟现实和元宇宙的最大短板在哪里?
  5. 【前沿科技】看完这篇文章前,你绝对想象不到欧美航空机器人竟然发展到这个程度了!...
  6. 第一本用机器生成的书籍由施普林格•自然出版
  7. 2019计算与系统神经科学大会Cosyne 前沿研究汇总
  8. 难以想象!未来十年,颠覆性技术将带来这些社会变革……
  9. 最新发布 | 2018年度第八届吴文俊人工智能科学技术奖获奖名单公示
  10. CPU是如何制造出来的