【问题标题】:QTabWidget's QTabBar is a few pixels to the right. How to align it at the same horizontal position as QTabWidget?QTabWidget 的 QTabBar 在右边几个像素。如何将其对齐在与 QTabWidget 相同的水平位置?
【发布时间】:2018-06-07 23:47:21
【问题描述】:

我对 QTabWidget 进行了子分类,并在其中有两个选项卡。我已经重写了 QTabWidget 的 ::resizeEvent() 来更改选项卡的宽度,因此它们可以占用 QTabWidget 宽度的一半。在 TAB1(左选项卡)中,我有一个水平拆分器(QSplitter),它将选项卡分成两个相等的部分,每个部分显示一个不同的 QWidget。一切正常,除了 QTabBar 的左上角 X 偏移量向右几个像素。我认为 QTabBar 本身就是向右移动几个像素。我该如何解决这个问题?

代码如下:

void WelcomeTabWidget::resizeEvent(QResizeEvent *event) {
    tabBar()->setMinimumWidth(event->size().width());
    tabBar()->setContentsMargins(0, 0, 0, 0);
    _splitter->setSizes({event->size().width() / 2, event->size().width() / 2});
    //The line below does not have any effect, so might as well remove it.
    QTabWidget::resizeEvent(event);
}

这是它的视觉外观(偏移量在两个地方用红色标记):

我该如何解决这个问题?

【问题讨论】:

    标签: c++ qt c++11 qwidget qtwidgets


    【解决方案1】:

    这是因为为整个应用程序设置了样式表:

    QTabWidget::tab-bar {
        left: 5px; /* move to the right by 5px */
    }
    

    所以,没关系:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多