[英]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
和自定义数据角色 ),以便能够将其与新状态进行比较并检测更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.