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 小部件的命名约定 的相关文章

  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 在 C# 中检查 PowerShell 执行策略的最佳方法是什么?

    当你跑步时Get ExecutionPolicy在 PowerShell 中 它得到有效的执行政策 https learn microsoft com en us powershell module microsoft powershell
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 无法将字符串文字分配给装箱的 std::string 向量

    这是我的类型系统的简化版本 include
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p

随机推荐

  • 使用 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 构建的开源项目 现在 我们需要一个小部件 以及其他变量 的命名约定 以将其用作所有代码中的标准 以便代码获得更好的可读性 并且我们可以在程序员之间获得更好的协调 有什么建议吗 编辑 我不