我正在尝试使用基于标签的UI(QTabWidget)创建一个简单的通信器。我希望标签可以关闭和移动。不过,对于每个选项卡,我都想记住指向我的类的指针(我保留套接字等),这样我就可以管理关闭选项卡和断开套接字。
一种方法是将它们(指针)保存在数组/任何容器中,分析用户完成的任何移动,并根据已移动的选项卡索引更改索引或交换指针,但这涉及到很多工作,甚至更多的错误。还有其他更简单的方法吗?
答案 0 :(得分:1)
使用myTabWidget->widget(index)
。
每个标签都有一个。
如果您的班级继承自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>();
将其取回。