如何将信号附加到动态创建的对象的插槽
How to attach a signal to a slot for an object created dynamically
我目前有多个复选框,它们是动态创建的,我如何向它们分配信号。这些复选框附加到QStandardItemModel
。我需要知道它们何时被点击。这就是我创建checkboxex 的方式
QStandardItem* chk_all = new QStandardItem();
chk_all->setCheckable(true);
chk_all->setCheckState(Qt::Unchecked);
要将信号附加到插槽,您需要作为对象的发件人的地址。由于这个对象在设计时并不存在于ui中,我该如何获取它的地址。这样我就可以完成连接语句
QObject::connect("what goes here" ,SIGNAL(clicked()), this, SLOT(CheckClicked())); //Tester
这些复选框不是小部件或单独的对象,QStandardItem
类也不是从QObject
派生的,您不能将它们分别连接到一个插槽。
由于它们的状态存储在模型中,检查或取消检查它们将使模型发出信号dataChanged(QModelIndex,QModelIndex)
和itemChanged(QStandardItem*)
。
但是,这些信号也会针对复选框状态以外的更改而发出。您可能还需要在模型中存储复选框以前的状态(使用QStandardItem::setData
/data
和自定义数据角色),以便将其与新状态进行比较并检测更改。
相关文章:
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- 创建动态对象并将其推送到矢量中
- 在创建动态二维数组时,在A[i*c+j]中使用c有什么用,即c代表什么
- 无法在 CMake 中创建动态库并将其链接到另一个动态库?
- 编写所需的代码以创建动态一维整数数组
- 创建动态分配的数组C
- 试图创建动态分配的char数组时的分割故障
- 在 c++ 上创建动态数组时出错
- 使用 MSVC C++编译器创建动态大小的数组
- 问题:在类中创建动态数组
- 如何在C 中创建动态数组,该数组将在执行时决定其大小
- 使用 Cmake 安装时创建动态库
- 为 C 绑定创建动态以 null 结尾的参数
- 如何在C 中创建动态分配的2D结构阵列
- 为矩阵创建动态数组,以循环迭代器命名
- 如何在C 中使用类创建动态列表
- 读取该文件,然后创建动态数组
- 包装本征的张量类以创建动态秩张量?
- 如何在C++中创建动态对象列表