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

У меня есть субкласс 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);
}

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

enter image description here

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

1 Ответ

0 голосов
/ 16 июня 2018

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

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

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

...