qt addTab 如何不触发currentChanged
时间: 2023-10-08 11:08:47 浏览: 120
在Qt中,使用QTabWidget的addTab函数添加选项卡时,默认会触发currentChanged信号。如果你希望在添加选项卡时不触发该信号,可以通过以下几种方法实现:
1. 使用blockSignals函数:在调用addTab函数之前,使用QTabWidget的blockSignals函数将currentChanged信号阻塞,然后再添加选项卡。完成后,再使用unblockSignals函数解除阻塞,如下所示:
```cpp
tabWidget->blockSignals(true);
tabWidget->addTab(widget, "Tab Title");
tabWidget->blockSignals(false);
```
2. 使用disconnect函数:在调用addTab函数之前,使用QObject的disconnect函数断开currentChanged信号的连接,然后再添加选项卡。完成后,可以选择重新连接信号,如下所示:
```cpp
QObject::disconnect(tabWidget, &QTabWidget::currentChanged, nullptr, nullptr);
tabWidget->addTab(widget, "Tab Title");
// 重新连接currentChanged信号
QObject::connect(tabWidget, &QTabWidget::currentChanged, this, &MyClass::handleCurrentChanged);
```
请注意,在使用这两种方法时,确保在添加选项卡后恢复对currentChanged信号的监听,以便在选项卡切换时获得正确的通知。
阅读全文