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 */
}
Итак, все в порядке:)