QTabWidget - 如何“包含”指向每个标签的指针?

时间:2016-06-06 19:50:06

标签: c++ qt pointers

我正在尝试使用基于标签的UI(QTabWidget)创建一个简单的通信器。我希望标签可以关闭和移动。不过,对于每个选项卡,我都想记住指向我的类的指针(我保留套接字等),这样我就可以管理关闭选项卡和断开套接字。

一种方法是将它们(指针)保存在数组/任何容器中,分析用户完成的任何移动,并根据已移动的选项卡索引更改索引或交换指针,但这涉及到很多工作,甚至更多的错误。还有其他更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

使用myTabWidget->widget(index)

每个标签都有一个。

Doc

如果您的班级继承自QObject,或者将其信号(如destroyed())与您班级的信号相关联,则可以将小部件设置为班级的家长。

或者你甚至可以做到

QVariant prop = QVariant::fromValue<intptr_t>((intptr_t)workerObject);
myTabWidget->widget(index)->setProperty("workerObject", prop);

真正存储指针,

QVariant prop =  myTabWidget->widget(index)->getProperty("workerObject");
WorkerClass *ptr = (WorkerClass*) prop.value<intptr_t>();

将其取回。