C++ QTabBar设置第一个标签不能拖动和关闭
时间: 2024-03-28 12:41:37 浏览: 79
基于QT+C++实现的模仿VSCode的可任意拖拽的Tab标签组QTabWidget+源码
5星 · 资源好评率100%
在 C++ 中,可以通过设置 QTabBar 的 movable 和 tabCloseRequested 两个属性来实现第一个标签不能拖动和关闭的效果。
具体做法如下:
1. 设置 movable 属性为 true,表示允许标签拖动。默认值为 true。
2. 通过重载 QTabBar 的 tabCloseRequested 事件,判断当前要关闭的标签是否是第一个标签,如果是,则不进行关闭操作。
示例代码如下:
```cpp
class MyTabBar : public QTabBar {
public:
MyTabBar(QWidget *parent = nullptr) : QTabBar(parent) {
setTabsClosable(true); // 允许标签关闭
setMovable(true); // 允许标签拖动
}
protected:
void tabCloseRequested(int index) override {
if (index == 0) { // 第一个标签不能关闭
return;
}
QTabBar::tabCloseRequested(index);
}
};
```
注意:这里的第一个标签是指索引为 0 的标签,而不一定是显示在最左边的标签。
阅读全文