保存QWidgets的地址/指针

时间:2016-06-03 07:41:41

标签: c++ qt pointers

我正在动态生成QWidgets(到目前为止只有标签),以便我可以动态更改UI。我知道我可以使用QTCreator的XML文件,但我有理由不这样做。

无论如何,每次创建窗口小部件时,我都会将类型(标签)和地址传递给向量。这很好。但是当我尝试将地址转换回QLabel(例如)并执行'& castedQLabel'时,它会给我一个不同的结果。

以下是正在发生的事情的伪代码:

 vector_of_Widgets.push_back({tmpString, "label", &origLabel}); 
 qDebug() << &origLabel;

//Later in code
QLabel *tmpLabel = (QLabel *)vector_of_QWidgets[number].data; //.data is the third argument ^^
qDebug() << vector_of_QWidgets[number].data;
qDebug() << &tmpLabel;

输出:

>>0x7ffc151a5518 

>>0x7ffc151a5518 
>>0x7ffc151a4ab0 

哦是的,同样,.data是(void *)。

1 个答案:

答案 0 :(得分:3)

tmpLabel指向您的QLabel,无需取消引用它。