首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt:如何强制QTabBar填充整个布局?

Qt:如何强制QTabBar填充整个布局?
EN

Stack Overflow用户
提问于 2020-07-23 07:33:55
回答 2查看 122关注 0票数 0

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

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

编辑:

我希望选项卡栏占据红色区域之外的绿色区域。我正在尝试实现拖放标签-我需要QTabBar占据所有的水平空间,这样标签就可以在它的末尾被拖动。

目前,我的自定义TabBar只是一个带有拖放事件捕获的标准QTabBar。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-24 05:49:29

setDocumentMode(true)

就是我要找的。

票数 0
EN

Stack Overflow用户

发布于 2020-07-23 10:56:48

没有简单的方法可以做到这一点。有一个QTabBar::setExpanding(),但我刚试过了,它不起作用。

但是,我确实看到了QTabBar::setMinimumWidth(),您可以有效地使用此方法来实现您想要的行为。下面是您的代码的大致外观:

代码语言:javascript
复制
class MyTabWidget : public QTabWidget {
    Q_OBJECT
protected:
    void showEvent(QShowEvent *event) {
        tabBar()->setMinimumWidth(size().width() / tabBar()->count());
        QTabWidget::showEvent(event);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63044630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档