Qt -在QAction中存储一个小部件指针



在Qt中我有一个表,其中每一行都有一个按钮,该按钮打开一个下拉菜单,您可以单击操作。我将动作的triggered()信号连接到将处理它们的插槽,但是在插槽中,我必须知道动作被触发的行。我不能把它存储在setData()中,因为它只存储QVariant。我还能如何存储指向小部件的指针?

Q_DECLARE_METATYPE(QPushButton *)

QPushButton *pb = new QPushButton;
QVariant v = QVariant::fromValue(pb);
qDebug() << pb << v.value < QPushButton * >();

您可以使用QVariant::fromValue()方法设置数据

如果你需要确定信号的发送者,使用

QWidget *w = qobject_cast<QWidget *>(sender());

相关内容

最新更新