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

时间:2015-07-14 12:07:06

标签: c++ qt

在Qt中的

我有一个表,其中每一行在其中一列中有一个按钮,该按钮打开一个下拉菜单,您可以在其中单击操作。我将动作的triggered()信号连接到将处理它们的插槽,但是在插槽中我必须知道触发动作的行。我无法将其存储在setData()中,因为它只会存储QVariant。我怎样才能存储指向窗口小部件的指针?

2 个答案:

答案 0 :(得分:1)

Q_DECLARE_METATYPE(QPushButton *)

...

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

对我有用。

答案 1 :(得分:0)

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

如果您需要确定信号的发件人使用

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