Qt 小部件的命名约定

2024-02-04

我正在与一群其他程序员合作开发一个使用 C++ 和 Qt 构建的开源项目。

现在,我们需要一个小部件(以及其他变量)的命名约定,以将其用作所有代码中的标准,以便代码获得更好的可读性,并且我们可以在程序员之间获得更好的协调。

有什么建议吗?

编辑:我不是在谈论命名新类,

相反,我谈论的是 Qt Widgets 的命名实例,假设我有一个用户名文本编辑,我应该将其命名为 txtEdtUsrNm 吗?

那么,我该如何选择推导呢?


只要您沿着这些思路思考,我就会从头到尾阅读这篇 QtQuarterly 文章。

设计 Qt 风格的 C++ API https://doc.qt.io/archives/qq/qq13-apis.html

也就是说,我们做的一件事是将实例的“使用”作为第一部分,将类的最后一个完整单词作为最后部分。

所以,你的“用户名”QTextEdit 是

QTextEdit * userNameEdit = new QTextEdit(this);

如果存在歧义,例如 QListView 和 QTreeView,请选择最后一个明确的部分。

QListView * userListView;

您可以根据自己的喜好找出缩写(例如 QLabel 的“Lbl”),但一般来说,整个单词都有效且易于阅读。

另一方面,我们对此并不太严格,在不带类名的情况下命名实例变量的意图可能更重要,因为如果将来您想更改类,则可以更改名称在缺乏良好的重构工具的情况下,这是一种痛苦。

也许找出您最常使用的通用小部件,并为最通用的超类选择一个命名约定,然后放开其他一切。

遵守约定的事项示例列表:

  • 布局 = 所有以以下结尾的类 “布局”并继承QLayout
  • Button = 所有以“Button”结尾并继承QAbstractButton的类

QA摘要班级名称类是思考列表中应该包含哪些内容的好地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 小部件的命名约定 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • 使用 Scrapy 和 selenium 抓取网站

    我要抓取 html 内容http ntry com scores named ladder main php http ntry com scores named ladder main php with Scrapy 但是 由于该网站的J
  • 如何使用单个查询从两个表中选择数据

    我一直在尝试了解如何使用单个查询从两个表中选择数据 如果有人能提出比单一查询更好的方法 我洗耳恭听 以前 我会使用两个查询来完成此操作 尽管我相信单个查询会更好 但我可以轻松地进行工作 因此尝试学习 我的一张桌子与此类似 但经过了简化 将此
  • 在R中安装依赖包时“无法移动临时安装”

    当我安装软件包时 先安装必备软件包 然后再安装实际软件包 我得到了 unable to move temporary installation 对所有必备包发出警告 但对实际包没有此类警告 但是当我加载该包时会出现错误 例如 当我insta
  • 从基类方法返回对派生类的引用

    我的任务是实现一个简单的 SVG 生成器 我需要支持圆 折线和文本 这三者至少有 4 个常用方法 设置描边颜色 设置填充颜色 设置描边宽度 字符串 主要要求之一是支持链接 例如 折线 SetStrokeColor 白色 SetFillCol
  • 按相同键对 JavaScript 数组对象进行分组

    我有一个对象数组 其中一些具有相同的月份名称 但基于日期的值不同 我们如何根据相同的属性值对数组对象进行分组 例如 month Jan value 3 month Jan value 3 5 month Feb value 2 1 mont
  • 什么任务最适合以函数式编程风格完成?

    我最近刚刚发现了函数式编程风格 我相信它将减少开发工作 使代码更易于阅读 使软件更易于维护 然而 问题是我很难说服任何人 嗯 最近我有机会就如何减少软件开发和维护工作进行演讲 我想向他们介绍函数式编程的概念以及它如何使团队受益 我的想法是向
  • 在项目的浏览器列表中配置的一个或多个浏览器

    我是离子框架的新手 启动离子应用程序时收到以下警告 请提出修复建议 ng One or more browsers which are configured in the project s Browserslist configurati
  • 鼠标移动/滚动到下一个哈希

    我添加了以下代码以便用鼠标滚动 通过单击 拖动滚动 而不是通过鼠标滚轮滚动 到目前为止 一切都很好 就像魅力一样 var clicked false clickY document on mousemove function e click
  • 枚举两个大数组的快速方法?

    我有两个大数组要处理 但让我们看一下下面的简化示例来了解一下这个想法 我想查找是否有一个元素data1与中的元素匹配data2并返回两者的数组索引data1 and data2如果以新数组的形式找到匹配项 index of data1 in
  • Aurelia 中 fetch() 的错误处理

    我有一个 API 其中包含服务器引发错误 状态 500 时出现的问题的有用描述 该描述作为响应文本的一部分 我的客户端代码使用 Aurelia 通过以下方式调用 apiaurelia fetch client使用通用方法进行调用 funct
  • AADB2C90077:用户没有现有会话,请求提示参数的值为“无”

    我有一个 Angular 应用程序 它使用MSAL js https github com AzureAD microsoft authentication library for js当我尝试获取访问令牌时 我收到以下错误 AADB2C9
  • 如何在 Sublime Text 3 中切换 XML 行注释

    我正在使用 Sublime Text 3 我遇到了问题 我不知道如何切换 XML 行注释 我知道有一个Toggle CommentSublime Text 3 中的函数 我尝试过 然而 结果却和我想象的不一样 例如 我想切换注释以下 XML
  • 是否可以从 MatLab 代码生成流程图? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我继承了一个 MatLab 项目 其中有一堆我需要重构的 MatLab 文件 能够生成流程图或类似的内容对我有很大帮助 我用谷歌搜索了
  • vs code live sass 编译器不更新文件

    所以有人之前问过类似的问题但没有得到答案 我正在学习 SASS 并在 vs code 中使用实时 sass 编译器 但它没有更新任何内容 我可以让 app css 文件显示更改的唯一方法是按下观看按钮并基本上重置该内容 以前没有这样做过 我
  • macOS 更新后 Git 无法工作(“xcrun:错误:无效的活动开发人员路径 (/Library/Developer/CommandLineTools”)

    我更新到最新的操作系统 和 或重新启动计算机 每次重大更新都会发生这种情况 但这一次我所做的只是在 2022 年 9 月 13 日重新启动计算机 今天早上 我在我的命令行中导航到我的工作代码库MacBook Pro https en wik
  • 我是否应该对共享进程生命周期的对象调用 dispose ?

    我知道所有实现的对象IDisposable一旦不再需要它们就应立即处置 以释放其非托管资源使用的内存 我的问题与我所知道的物体有关事实上将一直存活到主机进程本身终止 如果我处理掉它们 会有什么影响吗 进程终止时是否有可能内存未被释放 GDI
  • Swagger 不显示真正的错误消息

    我们使用 NET WebAPI 框架 并在 Web API 之上使用 swagger 来进行注释和开箱即用的 UI 体验 到目前为止 它运行得很好 但是 当我从 WebAPI Http 400 返回错误时 代码如下 return BadRe
  • 如何解决 IndexError: 在 Python 中使用循环内的数组列出赋值索引超出范围

    我是蟒蛇新手 我正在创建 2 个数组file name 存储文件的名称 和path 存储文件的路径 的价值观path数组在 while 循环内分配 但我收到错误 IndexError Python 中的列表赋值索引超出范围 我已经在这上面浪
  • 我可以在同一台机器上拥有/使用不同版本的导轨吗

    我实际上正在阅读一本为 Rails 2 3 5 编写的 Rails 书籍 我也想测试 Rails 3 beta 我的 Mac OS leopard 中是否可以进行这样的设置 我尝试过使用 gem list drails 我的Mac中存储了许
  • Qt 小部件的命名约定

    我正在与一群其他程序员合作开发一个使用 C 和 Qt 构建的开源项目 现在 我们需要一个小部件 以及其他变量 的命名约定 以将其用作所有代码中的标准 以便代码获得更好的可读性 并且我们可以在程序员之间获得更好的协调 有什么建议吗 编辑 我不