QTabBar QTabWidget находится на несколько пикселей вправо. Как выровнять его в том же горизонтальном положении, что и QTabWidget?

У меня есть субкласс QTabWidget и у меня там две вкладки. Я переопределил::resizeEvent() QTabWidget, чтобы изменить ширину вкладок, чтобы они могли занимать половину ширины QTabWidget. В TAB1 (левая вкладка) у меня есть горизонтальный разделитель (QSplitter), который делит вкладку на две равные части, в каждой из которых отображается отдельный QWidget. Все работает нормально, за исключением того, что смещение X верхнего левого угла QTabBar составляет несколько пикселей вправо. Я думаю, что сам 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);
}

Вот как это выглядит визуально (смещение отмечено в двух местах красным цветом):

Как это исправить?

1 ответ

Решение

Это происходило из-за таблиц стилей, которые были установлены для всего приложения:

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

Итак, все в порядке:)

Другие вопросы по тегам