Метод № 1: это ошибка, простая и понятная. Фон кнопок прозрачный; но установка белого цвета с помощью таблицы стилей и установка ширины также не работают правильно.
Я смог решить проблему с помощью таблицы стилей таким образом:
QTabBar::scroller {width: 0px;}
Если это не работает: избавиться от него. Затем я создал две кнопки для прокрутки вправо и расположил виджет вкладки и кнопки горизонтально. Я установил отступы для вертикальных и горизонтальных макетов на ноль. Я пометил кнопки «‹» и «>», но вы можете сделать это покрасивее, если хотите. Если вы хотите, чтобы область вкладок под полосой прокрутки была такой же ширины, как полоса вкладок и кнопки, вам понадобятся два виджета вкладок:
QTabWidget1 Button1 Button2
Wider QTabwidget2
Затем вы устанавливаете высоту QTabWidget1, чтобы отображались только вкладки, и устанавливаете высоту панели вкладок QTabWidget2 на 0 с помощью таблицы стилей:
QTabBar::tab {height: 0px;}
поэтому отображаются только тела вкладок; а не сами вкладки.
Поскольку они недостаточно продуманы, чтобы предоставить метод прокрутки для панели вкладок, вы можете обмануть его, просто изменив активную вкладку с помощью setCurrentIndex(); и останется на виду.
Затем вы можете активировать или деактивировать кнопки ‹ и > в зависимости от того, активна ли уже первая или последняя вкладка. Я не утруждаюсь их скрывать или отключать, так как мое приложение в основном расчетное и мало полируется.
Да, это ПИТА. Если нет лучшего способа обойти это, просто закодируйте его. Если жизнь преподнесет тебе лимон, сделай лимонные бомбочки и покажи ей, кто в доме хозяин. (На самом деле, почти всегда фигурально, только.) Я отправлю отчет об ошибке на днях, когда у меня будет время.
Может быть, есть волшебные свойства, которые могут заставить эти кнопки иметь нормальный фон и размеры; но я их не знаю.
Редактировать: Метод № 2: Решил мою проблему, но не будет OP (для тех, кто испытывает ту же проблему. Я пришел сюда из-за этой проблемы, когда я не пытался изменить стиль этих кнопок. Это известная ошибка при использовании таблицы стилей что QTabBar либо имеет, либо наследует: "При добавлении таблицы стилей на вкладки кнопки со стрелками навигации стать прозрачным". (Проголосуйте за эту проблему, и она будет исправлена быстрее.) Простое отсутствие таблицы стилей решило мою проблему. Моя была в родительской форме, и я удалил ее и применил к нужному элементу только стиль, исправил.
Метод № 3: Вы можете попробовать установить такие свойства, как ширина кнопки, используя свойства, не относящиеся к таблицам стилей, пока это не будет исправлено; хотя я считаю, что это будет означать подкласс QTabWidget и QTabBar для доступа к свойствам QToolButton. Звучит хуже, чем есть. Вы можете сделать это, написав в заголовке около дюжины строк кода; хотя, если вы используете Qt Creator на вкладке «Дизайн» или «Дизайнер», вам нужно будет продвигать виджет вкладки.
person
CodeLurker
schedule
11.03.2019
a->setStyle("fusion");
в вашем main.cpp - person eyllanesc   schedule 01.12.2018a.setStyle("fusion");
в main.cpp, и есть небольшое улучшение при использовании таблицы стилей в моем вопросе, кнопка со стрелкой больше, и кнопки больше не накладываются друг на друга, но стрелка влево не отображается, скриншот: imgur.com/v4mdaz6 - person u23141244   schedule 02.12.2018