简体   繁体   English

QTabWidget-如何“包含”指向每个选项卡的指针?

[英]QTabWidget - how to “include” a pointer to every tab?

I'm trying to make a simple communicator, with UI based on tabs (QTabWidget). 我正在尝试使用基于选项卡(QTabWidget)的UI制作一个简单的交流器。 I want tabs to be closeable and movable. 我希望标签可以关闭和移动。 Still, for every tab I would like to remember a pointer to my class (where I keep socket etc.), so I could manage closing tabs and disconnecting sockets. 尽管如此,对于每个选项卡,我都想记住一个指向我的类的指针(我在那里保存套接字等),因此我可以管理关闭选项卡和断开套接字的连接。

One way is to keep them(pointers) in array / any container, analyze any move that was done by a user, and change indexes or swap pointers dependently on index of tabs, that were moved, but this involves a lot of work, and even more bugs. 一种方法是将它们(指针)保留在数组/任何容器中,分析用户执行的任何移动,并根据移动的选项卡的索引来更改索引或交换指针,但这涉及很多工作,并且更多错误。 Is there any other and simpler way I could get it? 还有其他更简单的方法可以得到它吗?

Use myTabWidget->widget(index) . 使用myTabWidget->widget(index)

There is one for each tab. 每个选项卡都有一个。

Doc 文件

You can set the widget as the parent of your class if your class inherits from QObject , or connect its signals (like destroyed() ) with that of your class. 如果您的类继承自QObject ,则可以将小部件设置为您的类的父级,或者将其信号(例如destroyed() )与您的类的信号连接。

Or you can even do 或者你甚至可以做

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

to really store the pointer, and 真正存储指针,并且

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

to get it back. 找回来

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM