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

У меня есть собственный виджет, состоящий из QFrame, в котором находится QWebEngineView, который отображает <textarea/> в своем HTML.

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

Два моих требования:

  1. Граница отображается только тогда, когда мой пользовательский виджет действительно выбран, а не отображается все время.
  2. Стиль границы (цвет, ширина и т. д.) должен быть стилем по умолчанию для любой платформы, на которой я запускаю свое приложение. Например, мне не нужна синяя рамка выбора macOS в Windows.

Как мне это сделать?

пример изображения

Существует вопрос (Как добавить границу вокруг QWidget?), но ответ представляет собой настраиваемый стиль, а не стиль платформы по умолчанию, и не объясняет, как сделать границу зависящей от выбора, а не отображать ее постоянно.


person sorbet    schedule 05.03.2019    source источник
comment
QComboBox не существует по умолчанию для других стилей и платформ.   -  person eyllanesc    schedule 05.03.2019
comment
@eyllanesc Я знаю, что стиль отличается от платформы к платформе, но это то, что я хочу сделать; Каким бы ни был стиль платформы по умолчанию, я хочу, чтобы моя граница выбора использовала его. Я хочу, чтобы граница выбора была тонкой и черной в Windows и толстой и синей в macOS.   -  person sorbet    schedule 05.03.2019
comment
То, что вы указываете, сложно, так как я думаю, что эта задача выполняется частным API Qt (D-Pointer/PIMPL), удачи, поскольку он использует библиотеки каждой ОС.   -  person eyllanesc    schedule 05.03.2019
comment
@sorbet Возможно, вы могли бы сделать это, изменив таблицу стилей comboBox, используя eventFilter для целевых событий FocusIn/Out. Вы можете использовать platform или os, чтобы выяснить, на какой платформе работает ваше приложение.   -  person Shilo    schedule 11.03.2019