c++ - Qt 和 C++:覆盖或扩展类
问题描述
我想将一些属性(如 ID)添加到QPushButton
. 因此,我需要扩展或覆盖类Q_WIDGETS_EXPORT QPushButton : public QAbstractButton
我怎么做?
谢谢您的帮助。
解决方案
您不需要扩展类以在其中放置一个 id ...而是使用属性系统。
如官方文档中所述:
可以使用通用函数 QObject::property() 和 QObject::setProperty() 来读取和写入属性,而无需知道除了属性名称之外的拥有类的任何信息。
你只需要做:
ui->myButton->setProperty("Id", 123456);
也可以是另一个对象,例如字符串(如果您定义它来执行此操作,甚至可以是您自己的类)
ui->myButton->setProperty("_name", "123456");
读取属性是property()
适合您的方法,但请阅读文档,因为您得到一个QVariant
作为返回示例:
QVariant(int, 123456)
推荐阅读
- r - 将 CCF 应用于文件夹中的所有文件并使用结果创建新表
- python-3.x - ttk Treeview,滚动到视图后获取项目的bbox
- python - 为什么给出命令后我的代码没有打印任何内容?
- node.js - 无法使用 Ejs 模板制作待办事项列表应用程序
- javascript - 如何将 api 响应数据传递给视频播放器
- javascript - 使用 Hadlebarjs 创建固定宽度输出
- php - Php,我需要删除数组中的特定文本,然后我需要添加它
- c# - 在 Azure Devops 中,如何将 exe 文件作为发布的一部分部署到服务器(或类似的东西)
- python - 如何在训练期间将一些样本扔到一个小批量中
- python - FastAPI 数据库上下文