• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >qt > Qt-代码编程风格与规范

Qt-代码编程风格与规范

作者:lfwh1517 字体:[增加 减小] 来源:互联网

lfwh1517通过本文主要向大家介绍了代码编程风格与规范等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

变量声明

  • 声明每一个变量都要用独立的一行
  • 避免短的或无意义的命名
  • 单个字符的变量名只适用于用来计数的临时变量,因为此时该变量的用途十分明显
  • 当一个变量被用到时再声明它
 // Wrong
 int a, b;
 char *c, *d;

 // Correct
 int height;
 int width;
 char *nameOfThis;
 char *nameOfThat;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

变量一般命名法

  • 变量名和函数名以小写字母开头,开头之后的部分每个单词以大写字母开头
  • 避免使用缩写
// Wrong
 short Cntr;
 char ITEM_DELIM = ' ';

 // Correct
 short counter;
 char itemDelimiter = ' ';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

变量在Qt中的命名

  • 类名以大写字母开头,公开类以Q开头,紧跟大写字母;公用函数以q开头。(此为Qt内部规范,我们可不遵守)
  • 首字母缩写词出现在命名中,采用驼峰命名法,如QXmlStreamReader,而不是QXMLStreamReader(即只有第一个字母大写)

空白行与空格的使用

  • 用空行在适当的地方划分代码块
  • 总是只用一个空行
  • 在关键词和花括号之间总是只用一个空格符
 // Wrong
 if(foo){
 }

 // Correct
 if (foo) {
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

指针的书写规范

  • 对于指针或引用,在类型名和或&之间用一个空格,但是在或&和变量名之间没有空格
 char *x;
 const QString &myString;
 const char * const y = "hello";
  • 1
  • 2
  • 3

二元操作符

  • 二元操作符的左右都要有空格
  • 二元操作符对待它的两个参数是同样对待的,只是在该操作符是类外的操作符
  • 例如QLineF有它自己的==操作符
QLineF lineF;
QLine lineN;

if (lineF == lineN) // Ok,  lineN is implicitly converted to QLineF
if (lineN == lineF) // Error: QLineF cannot be converted implicitly to QLine, and the LHS is a member so no conversion applies
  • 1
  • 2
  • 3
  • 4
  • 5

逗号

  • 逗号左边没有空格,逗号右边有一个空格
  #include <QApplication>
  #include <QMessageBox>

  int main(int argc, char *argv[])
  {
      QT_REQUIRE_VERSION(argc, argv, "4.0.2")

      QApplication app(argc, argv);
      ...
      return app.exec();
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

分号

  • 分号左边没有空格,分号作为语句的结束符,其右边一般不再有内容
  struct Point2D
  {
      int x;
      int y;
  };
  • 1
  • 2
  • 3
  • 4
  • 5

井号

  • #号右边没有空格
  #include <QtGlobal>

  #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
  #include <QtWidgets>
  #else 
  #include <QtGui>
  #endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

引号

  • 左引号的左边和右引号的右边都有一个空格,左引号的右边和右引号的左边都没有空格
  • 如果右引号右边是又括号的话,它们之间没有空格
qDebug() << Q_FUNC_INFO << "was called with value1:" << value1 << "value2:" << value2;

QT_REQUIRE_VERSION(argc, argv, "4.0.2")
  • 1
  • 2
  • 3

cast

  • cast后无须空格
 // Wrong
 char* blockOfMemory = (char* ) malloc(data.size());

 // Correct
 char *blockOfMemory = reinterpret_cast<char *>(malloc(data.size()));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 避免C语言的casts,尽量用C++的casts (static_cast, const_cast, reinterpret_cast)。 reinterpret_cast 和 C风格的cast用起来都是危险的,但至少 reinterpret_cast 不会把const修饰符去掉。
  • 涉及到QObjects或重构自己的代码时,不要使用dynamic_cast,而是用qobject_cast,例如在引进一个类型的方法时。
  • 用构造函数去cast简单类型,例如:用int(myFloat)代替(int)myFloat

语句

  • 不要在一行写多条语句
  • 另起一行写控制流语句的定义
 // Wrong
 if (foo) bar();

 // Correct
 if (foo)
     bar();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

花括号写法

  • 使用紧贴括号:左括号和语句的开头在同一行,如果右括号是紧跟在一个关键词之后的,则右括号和该关键词在同一行
 // Wrong
 if (codec)
 {
 }
 else
 {
 }

 // Correct
 if (codec) {
 } else {
 }<



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • Qt 之 QSqlRelation Class
  • QTableView 双击 获取 一行数据
  • qt中QTreeWidget使用
  • Qt-代码编程风格与规范
  • qt中QLayout的使用小结
  • QGraphicsItem的缩放
  • Qt-Qt creator快捷键

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Qt-代码编程风格与规范
    • Qt 之 QSqlRelation Class
    • qt中QTreeWidget使用
    • QGraphicsItem的缩放
    • QTableView 双击 获取 一行数据
    • qt中QLayout的使用小结
    • Qt-Qt creator快捷键

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有