我只需将 QTabWidget 中的一个选项卡设置为不可移动。我找不到办法做到这一点。另外,在 Qt 设计器中,您只能(取消)选中“可移动”,但这不适用于仅一个特定选项卡。
查看(的子元素)的源代码QTabBarQTabWidget,似乎这是不可能的。movable所有选项卡只有一个属性。
不过,您可以尝试以下操作:
在拖动开始之前子类化QTabBar并捕获鼠标按下事件以启用或禁用选项卡的移动。像这样的东西:
void MyTabBar::mousePressEvent(QMouseEvent *event) {
// all tabs movable except first
setMovable(tabAt(event->pos()) != 0);
QTabBar::mousePressEvent(event);
}
Run Code Online (Sandbox Code Playgroud)然后在添加选项卡之前,将默认选项卡栏替换为您的子类:
myTabWidget->setTabBar(new MyTabBar());
Run Code Online (Sandbox Code Playgroud)这个可能有点漏,我还没有尝试过。我首先想到的是setMovable()不再起作用了。也许拖动其他一些选项卡也会导致一些奇怪的行为。
您是否考虑过,a 可能QTabWidget不是正确的 GUI 元素?没有图形提示表明选项卡是否可拖动,这可能会让用户感到困惑。也许最好使用QStackedWidget自定义方式在页面之间进行更改。
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |