我有一个包含自定义QTabBar的自定义QTabWidget。我想将QTabBar的区域(红色区域)一直扩展到窗口的右侧,而不是放大选项卡本身。

我已经尝试将QTabBar的水平大小策略设置为QSizePolicy::Ignored或QSizePolicy::Expanding,但这些都不起作用。看起来QTabBar受到了QTabWidget的约束,但我不知道为什么或者如何解决这个问题。
编辑:

我希望选项卡栏占据红色区域之外的绿色区域。我正在尝试实现拖放标签-我需要QTabBar占据所有的水平空间,这样标签就可以在它的末尾被拖动。
目前,我的自定义TabBar只是一个带有拖放事件捕获的标准QTabBar。
发布于 2020-07-24 05:49:29
setDocumentMode(true)
就是我要找的。
发布于 2020-07-23 10:56:48
没有简单的方法可以做到这一点。有一个QTabBar::setExpanding(),但我刚试过了,它不起作用。
但是,我确实看到了QTabBar::setMinimumWidth(),您可以有效地使用此方法来实现您想要的行为。下面是您的代码的大致外观:
class MyTabWidget : public QTabWidget {
Q_OBJECT
protected:
void showEvent(QShowEvent *event) {
tabBar()->setMinimumWidth(size().width() / tabBar()->count());
QTabWidget::showEvent(event);
}
}https://stackoverflow.com/questions/63044630
复制相似问题