Группировка вкладок QTabBar: стиль отдельной вкладки (не виджет внутри вкладки) - PullRequest
0 голосов
/ 14 апреля 2019

Для QTabBar (и QTabWidget) с большим количеством вкладок я хотел бы сгруппировать вкладки, рисуя зазор между группами.

Наиболее очевидный способ - это, вероятно, добавить вкладку-разделитель, отключитьи установите стиль для QTabBar :: tab: disabled, чтобы сделать его невидимым.Очень хороший пример в другом решении для stackexchange, извините, я потерял ссылку на него.

Однако программа, частью которой она является, имеет довольно сложную и переплетенную последовательность вкладок, и было бы очень хорошо, если бы ее не было.чтобы изменить последовательность вкладок, вставив вкладки-проставки.

Итак, я бы хотел стилизовать первую вкладку любой данной группы так, чтобы она отображалась с пробелом слева.Вы можете сделать это для всех вкладок, таких как:

        self.ui.tabWidget.setStyleSheet("""
        QTabBar::tab {
            margin-left:10px;

Что дает: enter image description here

Вопрос в том, как применить это только к определенным вкладкам?

Кажется, что ключевой вопрос заключается в следующем: как стилизовать отдельную вкладку, а не виджет, который находится внутри вкладки?

Выполнение чего-то подобного добавляет только поля и отступы внутри вкладок.border:

bar.tabButton(i,QTabBar.LeftSide).setStyleSheet(...)

, который не добавляет визуального разделения между вкладками.Я хочу добавить поле за пределами вкладки.

Я пытался добавить это в таблицу стилей:

        QTabBar::tab[categoryPosition="first"] {
            margin-left:10px;
        }
        QTabBar::tab[categoryPosition="last"] {
            margin-right:10px;
        }

, сопровождаемое этим в коде, для каждой вкладки, которая является первойв группе:

bar.tabButton(i,QTabBar.LeftSide).setProperty("categoryPosition","first")

но не повезло.Некоторые другие вопросы, связанные со стековым потоком, указывают на то, что нет способа стилизовать конкретную вкладку по ее индексу, поскольку вкладка является структурой, а не самим виджетом, но я не уверен, что понял их правильно.

Итакэто возвращает нас к первоначальному вопросу: как лучше всего выполнить визуальную группировку такого типа в QTabBar?1) добавить разделительные вкладки: сложнее, чем кажется, когда последовательность вкладок сложно изменить;2) стилизовать первую и / или последнюю вкладки в любой конкретной группе;3) есть еще один хороший вариант?

...